Add lift

This version uses dynamic compilation to preserve arity and parameter names, and give the lifted function a helpful name.  The implication is that the act of lifting is slow, but produces functions that have nice properties:

1. They're easily curryable, since `.length` is set correctly
2. If you see them in a debugger or `console.log` them, they have sensible function names and parameter lists with real parameter names.
3. They're still fast when calling them at runtime

Close #38