Migrate datapackage.licenses to the Specification inheritance model

This required different tests and moving helper function logic to
Resource (logic is duplicated as the DataPackage class uses the
helper functions to handle licenses and the DataPackage class does
not inherit from from the Specification class).

One test is skipped because that requires DataPackage license
functionality which isn't implemented.
Migrate datapackage.sources to the Specification inheritance model

This, like when migrating licenses, required different tests and
moving helper function logic to Resource (logic is duplicated as
the DataPackage class uses the helper functions to handle sources
and the DataPackage class does not yett inherit from from the
Specification class).

This also called for two breaking changes.

* Previous version required name for a source. This restriction
  does not comply with the specification and has been removed.
* Because the name requirement has been removed it is no longer
  possible to remove sources based on names so that method has
  been removed and removing is left up to users.
Migrate datapackage.DataPackage to the Specification inheritance model

You can now create DataPackages with datapackages! Other changes
(than making DataPackages itself be the descriptor instead of
using a descriptor) needed to make this happen:

* Tests needed to be changed and the skipped test could now be
  unskipped.
* Specification objects can now be marked as extendable because
  the data package specification does not forbid adding keys to
  them.
* Specification class now includes a process_object_array method
  which is inherited and reduces repetition of list processing
* Better datapackage_version handling (since we don't support
  multiple versions). This also removed a test which checked
  for a missing datapackage_version because that shouldn't
  happen (it's a required field).
* Added Person class to represent persons (or organisations)
* Removed default values for many fields as they should just not
  be present if they aren't set.
* Removed remaining cruft in sources and licenses files since the
  DataPackage class now uses the Source and License objects.