Handle some invalid JWTs

Handles some invalid JWTs found in the wild and outputs a JWT::DecodeError instead of a NoMethodError.

* If the header is nonexistent
* If the header is valid, but the payload is nonexistent
* If the crypto segment is empty