Curry applyUnapply
Allow var arg functions, TypeError if match not exhaustive
Do not proxy predicates as explicit guard less confusing
Add multimethod support with method
Unapply multiply args, simplify binary ops in test