Build FFI instance when class is created, load library when instantiated
Lazily load the library on first use instead of on import
Fix the import order
Merge pull request #1467 from dstufft/no-implicit-compile

Refactor to avoid the implicit compile when executing setup.py
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.
Point the docs to the new location of the __about__.py file