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.
Rather than using a tuple look into Python's collections.namedtuple (https://docs.python.org/2/library/collections.html#collections.namedtuple) to create a simple data class to hold the explicitness information.
Also using True/False rather than 0/1 to indicate implicitness would be easier to understand.