Memleak tests (#3140)

* Bind a pair of mem functions.

* make these conditional

* do the conditional correctly

* move to the right section

* I'm not saying libressl should be illegal, but it is annoying

* sigh, typo

* first cut at memleak tests. doesn't work

* hack around the previous error, onto the next one

* drop the pointless restoration of the original functions

* Don't try to use the previous malloc functions.

The default malloc is CRYPTO_malloc which calls the custom ptr you provided, so it just recurses forever.

* flake8

* Get the code basically working

* flake8

* say the correct incantation

* Don't try to run on old OpenSSL

* Flushing this is a good idea

* Fixed a py2.7+ism

* GRRRRR

* WOrkaround for hilarity

* Revert "WOrkaround for hilarity"

This reverts commit 37b9f3b4ed4063eef5add3bb5d5dd592a007d439.

* Swap out these functions for the originals

* py3k fix

* flake8

* nonsense for windows

* py3k

* seperate stdout and stderr because py26 has a warning on stderr

* try writing this all out for windows

* useful error messages

* Debugging utility

* Avoid this mess, don't dlopen anything

* consistency

* Throw away this FFI entirely

* some useful comments
3 files changed