Fixed a pretty horrible bug with multi application.

I had messed up the implementation such that after a single application, the function object returned was no longer capable of multi application.

I also hid the currying machinery in a namespace.