make is_a itself a multimethod

* This allows you to compare other things for is_a relationship besides
  types.
* Example, for LooseVersion, you can compare them using >, so that 1.2.1
  is_a 1.2
* Added some basic test for this