create CommonType, s/Failures/FailureSet/
make CommonType::EasyNew
make coretypes use easynew
find perl with env; just for my convenience
remove the errors_struct test entries

I think they are of questionable usefulness and require a lot of
machinery that is not clearly going to be worth implementing in
other implementations, and which is also not necessarily going
to work for data-descent methods other than dicts and arrays.
remove the perl handling of the errors_struct
big change to how struct-fail in perl indicate paths

Instead of having a set of parallel arrays, we now give an arrayref
of arrayrefs.

Instead of:

  data      => [    1, 2, 'foo' ],
  data_type => [ qw(i  i  k    )],

We say:

  data_path => [ [ 1, 'index' ], [ 2, 'index' ], [ 'foo', 'key' ] ],

This avoids a number of grotty passing-parallel-arrays bits, but more
importantly, it provides a way for us to deal with weird
non-index-non-key data descent methods.  For example, the non-core
/perl/ref type can do a scalar de-reference.  If ${ $foo }->[0] is
invalid, we want to say so, but "i" and "k" were not enough.  The lists
of pairs, above, avoid the i/k dichotomy.  "index" and "key" are
shorthand, but we can provide any string we want there and can provide
a third arg, a coderef that munges the existing path-string for things
like circumfix dereferencing.
make the old ->_subchecks method publicker
changelog!
v0.200001

          major changes to how structured failures report; still experimental

          introduces CommonType abstract base class
v0.200002

          structured failures, now for real