Move function definition macros to vexcl/function.hpp

Also introduce dual functor creation helper, VEX_DUAL_FUNCTOR. To be
used with sort/scan/reduce algorithms
Documented VEX_DUAL_FUNCTOR in README
Switch to VEX_FUNCTION(v2) internally and in tests