Raise specific errors with invalid UUID cases

It would be more helpful for developers integrating functionality at a
higher level if errors raised for invalid UUIDs are namespaced. This
adds a new Cql::Uuid::InvalidUuidError that improves two cases:

 - The fix for jruby issue https://github.com/jruby/jruby/issues/1608
   is no longer necessary because we are now raising an explicit error
   describing that the UUID is invalid - so the reliance on raising an
   ArgumentError in order to maintain consistency for Integer is no
   longer necessary.

 - The error messages are now more specific, and therefore more helpful
   for when a developer is doing an integration. On the same note, the
   errors being namespaced specifically under Cql::Uuid allows for a
   rescue for specific cases, instead of the higher-level ArgumentError
   that could occur in many other places, for many other reasons.

My specific use case is that I am creating an API that is on top of a cassandra datastore, so I am making use of the Cequel gem (uses this gem). I want to rescue specific errors that might happen so I can render 404, or 400 based on what happened. This error (ArgumentError) was occurring when someone would search for a record that uses a UUID as the key, but they wouldn't supply a proper UUID. Instead of rescuing ArgumentError, which is very high-level (and happened to swallow a lot more errors than it should have), it is much more useful to me if there is some kind of specific error to catch.
Please remove this comment, we'll track it some other way, like keeping an issue open.