Converted to Moo
Use Sub::Quote for all type check subs
Can't use MooX::Types::MooseLike because it doesn't use quote_sub

This would make for slow constructors. I looked into patching
MooX::Types::MooseLike but this is kind of a pain.