Make sure callbacks aren't garbage collected

This fixes random crashes with GnuTLS.
Handle closed connection (EOF) properly
Enable GnuTLS by default
Use helper process instead of threads

This helps isolate issues better.
Properly work with binary data
Disable GnuTLS test

Having this test active causes all other tests to crash.  It works fine
on its own.
Redo scanner unit testing with mock objects