An idea I have:

* `RSAPrivateKey` and `RSAPublicKey` have a set of additional interfaces they can participate in which include methods like `rsa_private_numbers`, and other serialization forms. These methods do not exist on keys which do not participate in the interfaces
* Add a `def dump_rsa_private_number(key)` to `serialization.py`, this method always exists, and raises an `UnsupportedAlgorithm` exception if the key doesn't implement the needed interfaces.

The nice thing about this is that it preserves the nice OOP-ness and interface stuff about a key being able to know if it implements all this stuff, while still letting us have a consistent API for things like `dump_json_web_key`, which won't have backend support.

Thoughts?