Add META.json and CPAN::Meta v2 support

This commit does the following:

- adds v2 required fields to the dist object
- populates 'prereqs' from old 'requires' if provided
- generates META.yml and META.json via CPAN::Meta
- generates Makefile.PL from v2 'prereqs' data
- tests the above
rejigger building of v2-style prereqs
Fix provides generation in META files

This commit makes the 'provides' attribute just be the
hash reference we expect in META.  A new 'packages' attribute
does what 'provides' used to do.  The builder for that
attribute replaces the previous type coercion, which is now
removed.
warn about backcompat
v0.015

          [THIS MIGHT BREAK YOUR CODE]
        - Adds META.json and CPAN::META::Spec v2 support (thanks, David
          Golden!)  If you were using ->provides to get objects, you should now
          use ->packages instead.