Refactor: implement ncurry using partial.

We are essentially doing partial application in the unsatisfied arguments path of `ncurry`. By relying on `partial` explicitly we reuse the library code and clean up the implementation a little.