ClassCastException still happen deep within BC - turn them into SignatureExeption

this happens when the signature is DSA but the public key for verification is RSA.

Sponsored by Lookout Inc.
assuming an ASN1Encodable to be a PKCS7 object can throw ClassCastException

whenever some strange ASN1 comes from the outside which is not a PKCS7 object, BC internally
assumes the right object tree structure which can lead to ClassCastException when the structure
is something else then expected.

Sponsored by Lookout Inc.
fix -1 string buffer length
prepare 0.9.6 release