Configurer middleware

This breaks apart some of the behavior in carica in such a way to allow users to pick and choose how it works.  Or they can add their own behavior.

Putting the PR up to spur discussion.  This code was prompted by the open ticket regarding *read-eval*