Key Usage extension is now required

It appears that some signing-only certificates may not contain a Key Usage extension.  Instead of assuming that a certificate with no Key Usage extension implicitly allows all usages for the key, we now require the Key Usage extension to be present, and it must contain the appropriate usage flag.  (Key Encipherment for RSA, Key Agreement for ECDH).

Note:  In my tests, it was possible to produce certs that had a signing key spec, but still falsely reported that they allowed Key Encipherment / Agreement in the key usage extension.  I don't think the module needs to be concerned with supporting malformed certificates like this, which basically lie about the capabilities of their associated private key.
Added test for latest code change

Unit test now covers the case where a certificate has no key usage extension defined.
Updated version number to 1.2.1
Merge pull request #6 from dlwyatt/ImprovedKeyChecking

Key Usage extension now mandatory