Add string length check as part of Hex::isValid().

Valid hex strings must have a length which is a multiple of 2.
Add string length check as part of Base32::isValid().

Valid hex strings must have a length which is a multiple of 8.
Fix typo in Hex::isValid() regex which failed to match the entire string.
Add Seed class for managing generation and encoding/decoding of seed values.

This commit also introduces the Raw encoder, which is a dummy encoder used as a placeholder when raw values are requested.
Fix bug in Base32 decoder which started manipulating the string before verifying it.
Change the HOTP class API to be a little easier to use.