Use Clamp for the CLI

Unlike Thor, Clamp gives us a more object-oriented approach to the CLI. This
allows us to only load specific files required for a given command.
Additionally, we can break commands into their own Ruby files, improving the
test speed and git-diffing in the future.
Lazy load generators until we call them
Remove MD5 require (we aren't using it)
Update help feature to remove Thorisms
Set the formatter during each test (since it might persist)
Remove hashie
Remove JSON.create_id (it's been fixed upstream)
Fix failing unit tests