Partial application operators

Fixes #19.
Performance was my primary concern. I generally eschew optimization but it seems more relevant for something as fundamental as applying function parameters. Your implementation helped me understand it from the perspective of thinking in Haskell but from a Swift perspective (which I didn't see clearly till you explained it) it's really just partial application. The `curry()`/`uncurry()` pair made me think there might be a better way.