add binding for openssl `X509_REQ_digest`
Merge pull request #1472 from bwhmather/X509_REQ_digest

add binding for openssl `X509_REQ_digest`
Move the cryptography package into a src/ subdirectory

Due to differences in how py.test determines which module to ``import``
the test suite actually runs against the cryptography which is in the
*current* directory instead of the cryptography which is installed. The
problem essentially boils down to when there is a tests/__init__.py then
py.test adds the current directory to the front of the sys.path, causing
it to take precedence over the installed location.

This means that running the tests relies on the implicit compile
that CFFI does instead of testing against what people will actually
be runnning, which is the module compiled by setup.py.
Use coverage parallel mode and coverage combine to fix paths

When using coverage.py with a project installed into site-packages
instead of in the current directory you end up with paths like
.tox/py34/lib/python3.4/site-packages/cryptography/__init__.py which
is less than ideal (and may cause issues when aggregating coverage
over multiple versions of Python). Switching coverage.py into
parallel-mode will have it write a .coverage.* file instead of a
.coverage file, which can then be "combined" into a .coverage file
using coverage combine. When coverage.py does the combine step it
will collapse the .tox/*/lib/python*/site-packages/cryptography
paths into src/cryptography.