CXX-303 clarify initialize() behavior

A few questions:

-new behavior is explained in init.h.  Is it clear?  It is a bit tricky as far as shutdown() is concerned, suggestions?
-apparently std::atexit has a [limit on how many functions can be registered](http://en.cppreference.com/w/cpp/utility/program/atexit) and this varies by implementation.  Does anybody know what this limit would be for our driver?  And is it worth mentioning in the description in init.h that really you can only call initialize() up to 'whatever the limit is' times (provided you use callShutdownAtExit=true)?
-I'm not sure how to test shutdown() when you use callShutdownAtExit=true, since I don't think it will be triggered until the program exits.
Andrew kind of left it up to me to come up with new, less-broken semantics for initialize()/shutdown(), so this is definitely something to discuss if it doesn't seem sane.