updates and cleanups to the gem meta

Just modernizing stuff and moving to the latest standards I use in
my gems.
modernize the test suite and get on the latest Assert

This test suite was mega-old.  I had changed a lot of testing
conventions since I last touched this gem so this is me updating
things.  Includes getting on the latest Assert and restructuring
the tests with the standard support, system, unit folder structure.
add a license to the gemspec
cleanup code and organization

Just cleaning things up to get it up to my standards.