Constraints based layout

This PR consists mostly of @jwiggins work on constraints based layouts for Enable. I have also ported the constraints solver from casuarius to kiwisolver.
There's a bit of overlap between the first four constraints and the two `align` uses. Shouldn't this test work without `align`?