use StandardError for more robust exception handling

StandardError is the typical Ruby base class for exceptions,
allowing them to be caught without specifying the exception class,
as in a "rescue => e" block.
specify license in gemspec
change Version's Redis to class from module

This was causing rspec to bail on my machine,
due to Redis being redefined as a module
rewrote lock without rescue block

This makes the code simpler, and more performant
support using locks from multiple threads inside the same process
Shortened up the test suite so it doesn't take so long to run.