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.
Didn't realize this is the semantic we wanted (or even what we had before, i think calling shutdown multiple times was an error) but this seems to be a good approach.