Split `curry` into two functions (v0.5.0)

(This pull request replaces #327)

`curry :: (* -> a) -> (* -> a)` for normal usage
`curryN :: Number -> (* -> a) -> (* -> a)` for variadic functions