A couple of new function related type traits.
Curry for arbitrary function objects.

Also, minor refactorisation of tuple.h to accomodate curry's spot in
prelude.