Add support for HS384, HS512, RS384, and RS512

**This is a breaking change**  (see below)

## Major Changes
* Added support for the wider formats of HS256 and RS256.
* Refactored the RSA implementation to be easier to read
* Extracted the rsa public key parsing from `Verify` into a standalone method for readability
* Renamed type `SigningMethodHS256` to `SigningMethodHMAC`.  Specific sizes are now just instances of this type.
    * Added public package global `SigningMethodHS256`
    * Added public package global `SigningMethodHS384`
    * Added public package global `SigningMethodHS512`
* Renamed type `SigningMethodRS256` to `SigningMethodRSA`.  Specific sizes are now just instances of this type.
    * Added public package global `SigningMethodRS256`
    * Added public package global `SigningMethodRS384`
    * Added public package global `SigningMethodRS512`
* Moved sample private key for HMAC tests from an inline value to a file on disk.  Value is unchanged.

## Compatibility

* `SigningMethodHS256` is now `*SigningMethodHMAC` instead of `type struct`
* `SigningMethodRS256` is now `*SigningMethodRSA` instead of `type struct`
* This is unlikely to require any changes in usages of this library.