Add Exception Dispatching

Through the magic of metaclasses, calls to GSSError will now
return a subclass when appropriate.  All of the status codes
have their own errors, as well as several common status code
combos.

This way, instead of having to do:

   except gb.GSSError as e:
      if e.maj_code == XYZ:
         do_something()
      else:
         raise e

We can just do

   except gb.ParameterReadError:
      do_something()