Fixes #31

This is a pretty hefty refactor. I found it easier to understand toml
generation with the majority of the generation code within the
monkey_patch rather than the generator class.

Please feel free to mark up my PR with comments as my ruby style may be a bit funky.
Does `#to_json` and similar converting methods accept paths? If so, can you link me to it?