(#6112) Memory indirector for cert generate specs

This second test case is an attempt to begin re-writing the
CertificateAuthority specs in a style which does not rely so heavily on
mocking the internals of methods, particularly for initialization.

Many of the specs in the proceeding test case end up looking like inverse
descriptions of the methods under test (expect this call, then that call,
then this other call), because there are so many side effects to
CertificateAuthority methods and dependencies on other SSL components which
are themselves indirected.  It is unclear whether we are really
testing the code.

Based on Patrick Carlisle's suggestion of using memory indirectors for the
various SSL endpoints, this new test case worries less about unhooking
CertificateAuthority from all its dependencies, and more about testing the
results of methods.  CertificateAuthority initialization still requires some
mocking but I've tried to isolate it more from the tests.

If we like this approach, we should begin moving tests from the first test
case into this one.

It would probably also be good to create an integration test for the SSL
library that more rigorously tests the interaction between SSL components
through CertificateAuthority.