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.
See my comment above in `test_grid_layout`