Introduce arakoon_user_function

This exposes Arakoon's user function interface.

Please review and apply if the review shows no issues.
Keep the doc in-line with existing wording, e.g. taken from `arakoon_get`:
```
The resulting value will be stored at 'result', and its length at
'result_size'. 'result' should be released by the caller when no longer
required.
```