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.
Update documentation with the new changes

The previous commits just introduced a lot of new modules which
were started before the documentation was merged so we need to
update the documentation to include those new modules as well.