This class represents identities: real-world objects such as people,
companies or organizations whose identities can be authenticated using
their public keys. Identities may also be more abstract (or concrete)
constructs, such as daemon threads or smart cards.
All Identity objects have a name and a public key. Names are
immutable. Identities may also be scoped. That is, if an Identity is
specified to have a particular scope, then the name and public
key of the Identity are unique within that scope.
An Identity also has a set of certificates (all certifying its own
public key). The Principal names specified in these certificates need
not be the same, only the key.
An Identity can be subclassed, to include postal and email addresses,
telephone numbers, images of faces and logos, and so on.