Introduce arakoon_user_function

This exposes Arakoon's user function interface.

Please review and apply if the review shows no issues.
If possible, keep the definitions in the header in the same order as the definitions in the implementation file.