Fix attempt to access dirtyKeys before it's setup.
Build.
CoffeeScript compiler directives updates for Asset Pipeline compatibility

* Specify local directory for relative paths
* Use require_tree for `hash` in `controller/render_cache`
* Add require for `set_proxy` in `set/binary_set_operation`
* Replace `require`s with `require_tree`s for `event_emitter` and
`observable` in `dom/dom`

Closes #423.
update dependencies
Merge branch 'master' of https://github.com/Shopify/batman
Add some more controller docs and a cake:doc task.
Merge remote-tracking branch 'initforthe/dirty_key_fix'

Conflicts:
	src/batman.coffee
Merge branch 'master' of https://github.com/Shopify/batman
Unify POST param serialization to use Batman.URI.paramsFromQuery.

Closes #364.
Build dist

Closes #430.
Ensure parent segments in nested routes are properly underscored.

- Fix #431.
Add automatic generation of state predicates to StateMachine.

 - This means that as states are defined using the class level
   @transitions macro, functions and accessors are availble to ask the
state machine if it is in that particular state:

@sm.get('isOn')
@sm.isOn()
data-bind="model.lifecycle.isLoading"
Switch the yield clearing strategy to cycle during every dispatch.

 - Yields now track which nodes are added and can be told to clear only nodes which were added before it started tracking them
 - This behaviour is used by controller dispatch to only remove nodes which were added *before* the dispatch started, that is to say nodes who are from other dispatches
 - This behaviour fixes #434 and fixes #411.
 - The first bug above was caused by the controller tracking what yields it rendered into, and then clearing all the other ones. This is wrong because the controller can only know what yields it was explicitly told to render into, but not what yields it's rendered content yielded into. The bug was that implicitly rendered content (e.g. by an inline data-contentfor) could be cleared if the insertion of that content happened during action execution (which only happens if the content has been rendered before and is in the cache). Phew.
 - The new strategy is better because now yields are just told when in time to start caring about which nodes should stick around and which shouldn't. Any nodes added after this point in time stay around and any before don't, so they can come from wherever and not be cleared at the end of dispatch.
 - Note that this whole dance is only necessary because we want nodes that are rendered in two different actions to just stay where they are during the render of the second action. None of this would be needed if we just removed everything from all yields and then reinserted it as it was rendered in the second action, but that results in DOM flicker.
added a test for Batman.Property.withoutTracking
Fix file uploads using the jQuery adapter. Whoops!
Build.
Let RestStorage handle singular responses from readAll requests

this allows hasOne associations to work with singular resource endpoints.
Fix string data in the jQuery Request adapter
RestStorage::extractFromNamespace

attach to prototype so it can be overridden
Make filters receive undefined for absent arguments.

 - Before, filters were only passed the arguments they were given. By inspecting filterFunction.length we can know how many arguments it expects and pass undefined for the absent ones. This won't work with CoffeeScript's splats, but thats ok.