Add the RenderCache for storing rendered views and evicting the given an absolute size limit on an LRU basis.
Make Batman.Controller use a RenderCache for its implicit renders.
Switch Batman.RenderCache to a simpler Hash implementation.
Ensure Batman.Renderers always have a reference to the view they are rendering.
Always append a view's root node instead of appending its children in some cases.

 - This reverts the changes prompted by #213.
 - The rationale is this: the complexity introduced by a view not having a true root node is not worth it. CSS might break, but it can be changed, and it can be argued that CSS that breaks with this change is crappy in the first place. When views have a root node which is the exact node which ends up in the DOM, getting it in there and importantly getting it out of there is far easier. As Views become more long lived objects which persist beyond one render, they need to be able to retract/hide themselves, whereas before they lost a reference to all their nodes because they were appended to different parents. Now, a View knows exactly what is in the DOM. The brittleness imposed by a View's wrapper always being a div will be remedied by allowing A) different elements, B) ids and classes similar to Backbone or Ender views, and C) allowing templates to declare that they have a root node instead of making views wrap them by default.
Rerefactor yields into object oriented evented goodness.

 - Explicitly clear yields during controller dispatch
 - Create a Yield class which queues its append, clear, and replace operations until it has a node
 - switch the data-yield/contentfor/replace bindings to use the Yield objects
Remove old function based ready handler on View.
Move yields onto the View object which generates them.

 - Rendering a view now stores the contents for yields that view will populate on the view's yields property.
 - Once rendering is finished a view will insert those contents into the appropriate positions
 - Upon removal from the DOM the view will retract its yields, holding reference to the nodes for the next time it needs to be inserted.
 - Batman.DOM.willRemoveNode, Batman.DOM.didRemoveNode, Batman.DOM.willInsertNode, and Batman.DOM.didInsertNode are all much clearer and called everywhere in the $helpers. Before, appendChild would sometimes not call didRemoveNode, and usage of $unbindNode and $unbindTree was very unclear.
 - DOM insertion and removal hooks are recursive such that show, hide, and view's disappear and appear will be called on any node having them defined in the hierarchy of the node being inserted or removed.
Remove a bunch of extraneous delays which do nothing other than slow down the tests.
Implement yield insertion and retraction.

 - yield contents are stored on the node and then appended/detached from their destinations when the root node of the view is inserted or removed
 - the view helpers now simulate dom insertion by calling will/didInsertNode
Remove clearAlling of yields upon controller dispatch because yields should retract themselves.
Null out options references instead of deleting.
Remove object-key warning from Property about memory leaks.
Minor code clean up for RenderCache to use some new features from master.
Make RenderCache defensively copy cache keys lest they be modified by the owner of the options.
Make YieldStorage available on the View class and privatize the rendered flag.
Rework node removal and destruction to be two different phases.
Add View::inUse() which reports if a view is in the DOM or not.
Ensure the RenderCache doesn't evict views which are still in use.
Add logic to make controller action execution clear all yields which haven't been rendered into.