drop custom structs -- just use Moo

This currently makes cloning a bit harder, but haarg has a
MooX::Clone/CloneWith/something in the works. Can work around in the meantime.