tests: renaming prototype method describes
trait/promise: minor ternary change
Controller: additional tests
Model: fast path for .set()

If you only ever use Model's .set(), it will now take a fast-path
instead of doing an object diff().

The thing that dirties it for object diff() is calling .data(), which
gives you direct access to the underlying data.

More complete testing of this as well.