BUG Extensions are singletons, better store policies on controller.

Thanks to @tractorcow for pointing it out.
Update docs and class names, support array syntax.