Create abstract Verifier and Signer, remove key_id hack from App Engine and IAM signers (#115)

diff --git a/tests/test_iam.py b/tests/test_iam.py
index 5ac9911..f776788 100644
--- a/tests/test_iam.py
+++ b/tests/test_iam.py
@@ -64,16 +64,12 @@
                 mock.sentinel.service_account_email)
 
     def test_key_id(self):
-        key_id = '123'
-        request = make_request(http_client.OK, data={'keyId': key_id})
-        credentials = make_credentials()
-
         signer = iam.Signer(
-            request, credentials, mock.sentinel.service_account_email)
+            mock.sentinel.request,
+            mock.sentinel.credentials,
+            mock.sentinel.service_account_email)
 
-        assert signer.key_id == '123'
-        auth_header = request.call_args[1]['headers']['authorization']
-        assert auth_header == 'Bearer token'
+        assert signer.key_id is None
 
     def test_sign_bytes(self):
         signature = b'DEADBEEF'