RSA*Numbers serialization interfaces.

This defines the interfaces which indicate that you can serialize some object (probably an `RSA*Key` provider) as an `RSA*Numbers` instance.

It depends on #984 but was not based on the rsa-numbers branch to make it more reviewable in isolation.
I don't like the use of multiple interfaces to do this very much. Does it make any sense for you to be able to have an object that isn't a `RSAPrivateKey` but is an `RSAPrivateKeyWithNumbers`?