Merge pull request #78 from alexcrichton/update

Prepare for s/static/const/
Feature matrix & conditioned doc generation

- Ensures that library builds and passes all tests without any
  features and with `tlsv1_1`, `tlsv1_2` features enabled. Note, 
  that `sslv2` isn’t in test case because on modern linux (like 
  on Travis servers) `SSLv2_method` isn’t in `libssl.so` so it
  builds fine but fails on linking tests.

- For simplification it generates docs after every build, but 
  uploads them once - if it is `master` branch and not a pull
  request.
Merge pull request #62 from vhbit/feature-matrix

Feature matrix & conditioned doc generation
Refactor init and error handling code

Move common ffi initialization code to 'ffi::init()' and the initialization of error handling to a
a shared location.
Merge pull request #79 from jroesch/init-cleanup

Refactor code around initialization and error strings.
ssl: allow setting cipher list
Merge pull request #83 from jmesmon/set-cipher-list

ssl: allow setting cipher list
Correct init mutexes and locking function

`libcrypto` uses locks quite intensively even without SSL. 
So they should be initialized before everything else to 
function properly in multi-threaded apps in which SSL 
operations are absent or delayed.

Finishes #79
Merge pull request #81 from vhbit/lock-init

Correct init mutexes and locking function
Cleaned up BigNum constructors
Removed redundant files
Merge pull request #87 from vhbit/removed-native

Removed redundant files
Merge pull request #86 from vhbit/bn-squash-init

Cleaned up BigNum constructors
Cert loading from PEM & restructuring 

- Added cert loading

- Extracted X509 tests
Merge pull request #85 from vhbit/x509-load-pem

Cert loading from PEM & restructuring
Update doc location
Clean up some BN stuff
AES 256 CBC unit test
Merge remote-tracking branch 'upstream/master' into aes-256-cbc-decrypt-test
Replaced vector of bytes with bytes string literal for expected output of AES_256_CBC deciphering unit test