Fix for issue #4 to throw IllegalArgumentException on bad data

Fixes issue #4.

getPublicId and isValidOTPFormat not fail more gracefully on bad input instead of throwing NPE or array index exceptions.