node-ready model

Lots of changes here - perhaps this is more of a show-and-tell. Basically gives model:

- async plugin support
- abstracted out transport layer based on the existing methods (`all`, `get`, `removeAll`, `save`, `update` & `remove`)
- uses `ForbesLindesay/is-browser` to abstract out the node.js/component differences.

Really hoping for a better way to make this work with node, although @ForbesLindesay's `is-browser` is really clever.

Just for context, this is the sort of thing I'd like to be able to support with plugins: https://github.com/MatthewMueller/model-mongo