Stoppable using C++11 locking:

This is a rework of the existing Stoppable which uses only C++11 standard library locking functionality. The class provides the same functionality as before.
A possible fix is that m_stopped is now set to true in stopped() and perhaps removes the risk of the condition variable wait() and wait_for() in stopRecursive() from being subject to spurious wakeups.
Extra logging is added to aid any future diagnosis of shutdown issues.

Worth noting that the Stoppable test takes much longer to run and rippled closes down more slowly, but perhaps that is indicative of something good! Worth running with logging level set to debug to get all the log output.

Reviewers: @vinniefalco @ximinez