Marph

This introduces attribute morphs. `AttrMorph`s allow a consumer to update a attribute value by calling `update`. The name of the attribute and element itself are still passed to the `attribute` hook, but should not be required often.

See https://github.com/mixonic/ember.js/commit/8c7cab5f61c5c1100c77b9196561b1d6dfaac08d for how this might work with Ember.

TODO:

* [ ] Test destruction
* [ ] Move the sanitization steps just merged into Ember into `AttrMorph` or `DOMHelper`
* [ ] Update API of morph per Kris's feedback (I believe `setContent` instead of `update`)
* [ ] Move `normalizeProperty` logic into a `DOMHelper` method called `setProp`, use this method instead of `setAttribute` for normal templates.