Cleanup

I've done some general cleanup to make it easier .
I tried to be very granular about the commits, so cherry-pick if you must.
I'd recommend releasing a new version of the gem after pulling these changes, primarily due to the new dependencies.

I'm planning to make additional contributions to this library, but I'd like this cleanup to be in place before I do.
I am going to write a support for [UASparser](http://user-agent-string.info/download/UASparser-for-Ruby) as pointed out on issue #1

:)