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.
`setUp` is run before every test, so the container should be reset in between all the tests.