Directly merge opts into metadata of custom evals

Allows to add arbitrary options to a custom evaller.
If `result-type` of the evaller is `:return`, the full map of metadata
is returned instead of just the cursor location.

The data sent to a return handler is now a map containing:
`:result` as the eval result, and
`:meta` as the metadata used for custom evaluation.