A number of improvements

I cleaned up some of the Moose types to use namespaced types (declared with MooseX::types) plus one that was giving me problems because it wasn't coercing correctly.

I also marked the "authentication" attribute on the method as lazy since the default was getting populated and therefore the "authentication" attribute of the service itself wasn't getting propogated down

Lastly, for fun, I implemented support for anonymous middlewares (so that you don't have to create an entirely separate class for something simple).

I'd be curious what you think...

Fun modules to hack on :)