Add mechanism and tests for checking required fields

Now subclasses of Specification can define a tuple or a list
called REQUIRED much like they can define SPECIFICATION which
should contain the names of fields that are required. A ValueError
is raises when required fields are missing from constructor.

For fields which should include one of many (like license vs.
licenses for a DataPackage) that should be represented as a tuple
within the REQUIRED tuple.
Included data directory in datapackage setup

This package data includes approved licenses and could include
other data files in the future.