Adds performance updates and date-handling.

Observers handle date objects correctly now. They no longer re-create
the oldValue on every sync.
Adds cleanup function for controller.

Controllers could cleanup by listening to their element’s ‘remove’
event, but elements did not always dispatch this, for e.g. in partials
when the controller changes but the element does not. A `beforeClose`
function can be defined on a controller to run any cleanup code
necessary.
Allows chip.init to be overridden.

Chip.init can be removed as a listener from `document.on(‘ready’)`,
allowing it to be called at an appropriate time within a custom setup
flow.
Updates trim to trim all extra whitespace.

Previously the trim binding only pulled out empty text nodes. It now
also trims non-empty text nodes.
Allows `animateOut` to not remove the element.

Sometimes an element needs to just animate out and then back in.
`dontRemove` allows that.
Adds reduce filter.
Fixes routing with animation changes.