Add Bundle configuration and tests.
Test signer.
Throw InvalidArgumentException when OTP is not an OTP.
Throw InvalidArgumentException when given OTP is not a string.
Case-insensitivise regexes.
Escape dot metacharacter in regex.
Strtr more Dvorak matches.
Fix typo.
Lowercase OTP string in case caps lock is enabled.
Test OTP.
Lowercase matches before replacing Dvorak characters them.
Move Signer from Signing/ to Crypto/.
Extract nonce generation into interface and md5()/uniqid() impl.
Document VerificationService#verify() exceptions.
Test VerificationService.
Test Otp::isValidString() accepts valid OTP strings.
Test Otp::isValidString() doesn't accept invalid OTP strings.
Rename Otp::isValidString() to ::isValid().
Ignore /cache.properties.
Test Md5UniqidNonceGenerator.