Enforcing a common interface for `sign_*()` methods...

In order to support adding custom signature methods, the current signature methods -- HMAC-SHA1, RSA-SHA1, and PLAINTEXT -- need to be implemented with a common interface. In a previous attempt, I tried changing those functions directly, but there are too many dependencies on their current signatures. By shimming them instead with these thin wrappers, I can provide the common interface I need without breaking everything else in the library.
Allowing custom signature methods to be registered and used...

The "PIZZA" signature method signs all requests with the string "PIZZA" as a trivial example of a custom signing method.