New implementation of finer lock grain in _hashlibopenssl: only create
the lock at the first update with more than 8 KB bytes. Object
creation/deallocation is faster if we hash less than 8 KB.
Changes between hashopenssl_threads-4.diff and my new patch: fix the
deadlock in ENTER_HASHLIB() (for the GIL) without speed change
(because we don't change the GIL state if we don't use a lock).
Changes between py3k trunk and my new patch:
- release the GIL with large byte string => faster with multiple CPUs
- fix EVP_get_block_size() and EVP_get_digest_size(): the context was
not protected by the lock!