Convert to Moo.

... using MooX::late to ease the transition.

Notes:

* __PACKAGE__->meta->make_immutable is now useless: Moo does it automatically
  the first time ->new is called on a class.
* auto_deref is not supported by Moo, so we explicitly dereference things in the
  few places where they were automatically dereferenced before.
* Instead of __PACKAGE__->meta->add_method (that would trigger the load of
  Moose, and require a dependency on it), use MooX::HandlesVia NativeTrait-like
  behaviour to generate push_$list methods.
* The test suite still passes successfully.