Added the Packer::Builder::Docker spec and implementation

* Also added required settings and a validation method to Packer::DataObject that I'll use for validation
Finished with the Packer::Builder sub-classes

* Every builder sub-class I use is now spec'ed and written
* New DataObject functions were added for storing hashes and arrays of hashes on the data stack