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.
Adding more components to `self.container` seems risky, but some of that is because I don't know when `setUp` is being run. Is it once for each test, or once for all tests in this class? If it's the latter, you should probably remove `c3` and `c4` at the end of this test.