Add the add_property method

Adds support for a public add_property method which exposes adding
a property to a Format object dynamically while still doing the
right thing with to_hash and to_json.
Refactor add_property

Change implementation of the add_property method which allows for
dynamically adding attributes from outside the gem. We made it
simpler to construct the args needed for this method and refactored
the logic and tests.
InvalidPropertyPrefix error class

Raise a InvalidPropertyPrefix error if the prefix is invalid.
DRY up the logic to create new property classes.

Take some code that was duplicated in both the PropertyParser and
Format classes and move into a method in the Property module.
Jessica has strong feelings on whitespace
Merge pull request #1 from G5/add_property

Add the add_property method