First steps for dynamic middleware

This also incorporates the idea of being able to turn middleware on and off and runtime.
Middleware includes validators or fieldType specific pre- and post-processors.