Add layout capability

* [x] factor canvas code into `Canvas` object
* [x] de-dupe `Plot` and `GMapPlot`
* [ ] expose kiwi objects
* [x] add `Panel` and `CartesianFrame` that use kiwi for constraints 
* [x] add simple plot layout with central `CartesianFrame` content area
* [x] replace `ViewState` with simple plot layout 
* [x] configure axes with panels for layout
I hate code like this. What was wrong with the enum approach, besides missing "both" case?