Initial spec and implementation for Packer::Provisioner and Packer::Provisioner::Shell

* The Packer::Provisioner is the superclass that all the provisioners inherit off of
   * It can hand out proper sub-class Provisioners on demand
* The Packer::Provisioner::Shell sub-class is fully spec'ed and implemented now
Implement File provisioner, test DataObject better

* Most of the add stuff is in DataObject so I implemented specs for this object and cut down duplicate tests from the objects that inherit from it
* Implemented the Packer::Provisioner::File provisioner
Add Packer::PostProcessor and Packer::PostProcessor::* classes

* The Packer::PostProcessor and its sub-classes do the final processing in the packer flow
* Added classes and specs
   * The specs for the sub-classes are lean because they all use the default DataObject methods which are well-tested
* Added a bunch of constants to the classes for enumerating/naming the types
Skeletons for the Packer::Builder and its sub-classes
Sorted out the Packer::Builder::VirtualBoxISO builder

* Specs are done
* Added new methods to Packer::DataObject to handle integers and arrays-of-arrays-of-strings
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
Start filling in Packer::Config

* Started the spec and implementation for the top-level Packer::Config class
* Added fakefs to the gemspec for the dev environment
* Rewrote the example in README.md so it looks exactly like something I think should work
Update copyright notice in every file
Finished spec, first implementation

* All the specs are done and the Packer::Config main class is working
* All the sub-classes that I use in my work are implemented, spec'ed and working
* The README should match reality now when it comes to the example
Keep up on the TODOs
Merge branch 'feature/initial-specs' into develop