Character Models

Introduces character behavior mixins

This is *way* better than ctrl scope methods for encapsulation. But
the win for testability is huge here. Inspiration from Ben Teese's [blog
post](http://blog.shinetech.com/2014/02/04/rich-object-models-and-angular-js/).

The initial HTTP stuff to fetch data now lives in the character service.
The data is memoized such that only one call is *ever* made. They would
be 304'd (if caching enabled), but since the data is 100% static anyway
let's only get it from network once!