return key in cert object if provided to the signer

* This change improves the situation for #57
* Tests to validate the key is being returned (or not) based on the
  three types of objects that can be sent to the signer
** CSR (with key)
** CSR (no key)
** SPKI (can't contain key)