A better isa check.

Checking the exactly class of an object is bad practice.  Check $obj->isa($class)
instead.

Using confess for a full stack trace on isa failure.  die won't show
where the actual attempt to set the attribute was made and croak will
report somewhere in the middle of Moo.
Change to JSON::MaybeXS

This gives the user the option to use Cpanel::JSON::XS for fast JSON
parsing instead of JSON::XS.  JSON::XS is written by Marc Lehmann who
is notoriously abusive to his users.

See https://rt.cpan.org/Ticket/Display.html?id=100031
Merge pull request #176 from plu/refactor/change_JSON

Change from JSON to JSON::MaybeXS