Certificates can now be pickled.

Added reduce method for Abstract class, so pickle can figure out how to create instances of classes generated by implicit/explicit.
This check seems a bit brittle - what type 'klass' is? Can you use it's API to check?