Fixed tests so that they will still run without failure when dependencies (PyCrypto, ecdsa) are missing

Currently, when the test suite is run with dependencies (PyCrypto or ecdsa) missing, some of the tests will fail. Specifically:
* test_decodes_valid_es384_jwt
* test_decodes_valid_rs384_jwt

Interestingly, several tests that depend on the libraries still pass even though the libraries aren't present by catching and silencing the `ImportError`.

It would be better if the test suite skipped these tests instead of marking them as failures. With these changes, the tests that currently error when dependencies are missing now are skipped (S). The tests that silently pass (even though they have proved nothing since the import failed), are also marked as skipped (S).

This provides better clarity to the test runner.

Also, I removed a couple of unnecessary references to PyCrypto's hash functions that were in the ECDSA code even though it uses the hashlib functions instead of PyCrypto.