Added reset method and fixed how I handle reading an object back into memory
Adding test cases
Refactored out header so that it can be shared with other forms of this class
Added method to get an InputStream on the contents and added accompanying test cases
Added License header
Added Javadoc