Introduce arakoon_user_function

This exposes Arakoon's user function interface.

Please review and apply if the review shows no issues.
I tend to keep pairs of arguments on the same line:
```c
const size_t arg_size, const void * const arg,
size_t * result_size, void **result
```