Refactored models to mimic canJS's models

Basic models like canJS (I'm pretty used to them) with some ideas from
ember-data mixed in.
It's only wrappers around hases to provide more properties like isLoaded
and isError. The models uses an internal store (one per model type) to
avoid create duplicates.