SAT-based dependency computation
This design describes how to compute what packages need to be installed using a SAT solver. Please see if it can be understood. Also, any counter-examples where this doesn't work, and ideas to lower the number of iterations needed, are welcome.
This is related to #18 (closed). I'll split the work into some tickets once this is reviewed.