Decorators: use @classmethod
Use modern except syntax

Replace:
    except SomeError, e:
with:
    except SomeError as e:

This is Python 3 syntax and available since Python 2.6.

Code that we've copied in has not been updated.  The hope is that we can
get rid of those pieces.