Split `curry` into two functions

`curry :: (* -> a) -> (* -> a)` for normal usage
`curryN :: Number -> (* -> a) -> (* -> a)` for variadic functions