Switch classes from Moose to Mouse.

This is just getting the classes switched.  Fortunately there's MouseX versions
of everything in use.

There's failures which will be addressed later.

Left a handful of the Moose classes in either because they're consuming Moose
roles or extending Moose classes.
Mouse::Util::TypeConstraints does not have maybe_type, do the equivalent.
Mouse appears to have a bug with $attr->default($instance).  Work around it.
Merge remote-tracking branch 'schwern/switch_to_mouse'
Require specific versions of Mouse modules.