Fix: compose was composing functions in the wrong order

Here's a fix for the fact that compose was composing functions in the wrong order, and modified test cases to test for it.

Previously ```__::compose($f, $g)``` would return a function ```$h``` such that ```$h($x) = $g($f($x)```.

Instead ```__::compose($f, $g)``` should return a function ```$h``` such that ```$h($x) = $f($g($x)```.

This is more consistent with the behavior of Underscore.js and is also closer to mathematical conventions.