Core

@mikemorris Okay, so this branch pushes towards a 'core' as well as data/ui abstractions where appropriate. It's not near working yet, but it's getting there. For reference for basically all patterns, it's just an [iD ripoff](https://github.com/systemed/iD) and basically aims to be iD junior.