Swap build string comparison

This is arbitrary anyway, but this way it compares numpy without mkl as newer
than numpy with it, which is required for now since conda doesn't avoid
installing features that aren't specified.
Optimize the constraint

Now if it can't find a solution with the newest version of everything, it will
increment the rhs of the constraint until a solution is found (essentially
finding the solution with the newest versions possible).

Now things like conda install pandas=0.9 python=2 work (previously it would
not because the latest scipy requires numpy 1.8 but pandas 0.9 requires numpy
1.7).