Add Schema object for data package management

This adds datapackage.schema which holds helper classes for
creating a data package schema according to the JSON table schema.
The classes this provides are Schema, Field, Constraints,
ForeignKey and Reference.

Each of these classes inherits from util.Specification which
provides an object like interface on top of a dictionary which
means that the dictionary is then ready for exporting to a
data package via a json serialization.