Vex function v2

Better versions of `VEX_FUNCTION` macro family. See the changes in `tests/vector_arithmetics.cpp` and the `User-defined functions` section of the `README` for details. The main points:
* Function definition is closer to the way functions are defined in C/C++.
* Function parameters now have readable names.
* It is possible to define a function that calls other custom functions inside its body.
* The generated OpenCL/CUDA functions retain the user-provided names.

The previous versions of the macro family are deprecated but still available as `VEX_FUNCTION_V1`.