Refactoring of TimeJawn

## Refactoring of TimeJawn
### Comments on Gem
I would just like to note that I like a lot of the meta-programming that exists within this gem and that I feel you did a great job on it.
### About this pull request
Some of the commits in here I feel are relevant to improving the current state of the gem, while others will introduce a breaking change and are more for indication as to how I would approach it. The relevant commits to the breaking changes are:
* [84d00ad](https://github.com/Chrisell/time_jawn/commit/84d00ad10089a80845112bd6510754679207928b)
* [2a6b1db](https://github.com/Chrisell/time_jawn/commit/2a6b1db2d59791d4d149eed201eabd032ffb86e4)