Added an exception for invalid schema constructions.
Added a factory method for generating new fields.

Should now be used in the array->schema generation method.
Made setters and adders return $this in most cases. Updated documentation.
Added  a Delimited field type.
Added the AbstractSizedField class to represent fields that are of a fixed length.
Return $this from the Size getter.
Split out the Schema Building process into a class with that responsibility instead of it being within Schema.
Remove unused use statements.
Update tests to use new fluent interface.
Made properties protected instead of public.
Fixed an issue that meant the name of the field was inaccessible.
The create* utility methods can be called statically.
Accepting arrays removes this limitation mentioned in the top docblock for the class.
Add a setter for the data contents of a DataSet.
Add a constructor to DataSet to initialise with a data array.
Implemented @joshdifabio's relative path fix for accessing backreferenced field values in repeated compound fields.
Made the structure of the Mask derived from a PropertyInterface value.
Add getter & setter for the structure property of the Mask field type.
Merge branch 'feat-fluentinterface'