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.
The path is necessary so that we can pass along the parent keys for nested hashes. I can try and think of a replacement if you'd like.