Fix a bug in reduce where the reduction function returning undefined caused undesirable return values.

A fault in the logic in Enumerable.reduce caused an issue where if the reduction function returned undefined, the "pick the first element of the enumerable to use as the initial value of the accumulator" logic to kick in (again, but later in the set usually). This is unexpected and wrong: the 100% should-always-be-the-case contract with reduce is whatever you return in the reduction function is the thing that gets passed to the next function, and if that thing is undefined, so be it.
Merge pull request #641 from Shopify/reduce_fix

Fix a bug in reduce where the reduction function returning undefined caused undesirable return values
build dist
fix bug when using arrays of models as the keys of a hash
another test, and better semantics
Merge pull request #643 from Shopify/fix_model_arrays_as_hash_keys

Fix using arrays as hash keys
build dist
Added deprecation mechanism.
Deprecate App.require methods.
Revert "Remove data-confirm functionality."

This reverts commit c9129473a0d14d57f2ddaa733ef5695424eda575.

Conflicts:
	lib/dist/batman.node.js
	src/view/bindings/event_binding.coffee
Deprecate data-confirm attribute.
Namespace deprecation in Batman.developer.
Restore to Muffin 0.6.2 in an effort to fix Node 0.6 compatibility
Build.
Update package.json and CHANGELOG.
Revert "Restore to Muffin 0.6.2 in an effort to fix Node 0.6 compatibility"

This reverts commit 9d756596097cef7d015b4908b65cfec2e2f569ad.
Fix failing test and bump version number.
Update CHANGELOG
Updated version of batman.node after running the test suite
Update the 13_controller.percolate docs with correct formatting