Have CertificateVerify sign a hash of the messages

Once padding and context is introduced into the signatures, it's no
longer possible for a single running hash to be used for both
CertificateVerify and Finished processing. That might cause
implementations to have to keep multiple running digests.

This change causes a hash of the messages to be signed instead, which
solves the problem. If we are using the hash for a signature then we
already depend on its second-preimage resistance in any case.