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'm also +1 on this idea, it makes it discoverable which serializations a key supports, but doesn't require all consumers to care.

We'll need to add the functions in a separate PR though.