several changes that should have been committed separately but happened at the same time:

added relative_require; moved functional utilities to sub-package; added functional.operator; minor changes to error/warn messages in memoize and opt_args