Print specs to debug

This helps when the hint code runs.
Check for unsatisfiability separately

Since we don't have to add any constraints to see if the specs are
unsatisfiable, this is fast, whereas bisecting the whole constraint space for
an unsatisfiable spec is very slow.
Optimize for better solutions

We keep the midpoint no more than 10 above the low, which keeps the code fast
for good solutions even if there is a high upper bound.

10 was arbitrary, but seems to work well. For conda install python=2.6
anaconda (run from Python 3), the value needed is 8.

There is still some optimization needed, though. For conda install python=2
numpy=1.6 anaconda, the optimal value is 72, which takes several minutes to
achieve.
Fix some indentation