Stoppable fortified:

*  Test written to confirm the current behavior.
*  Comments updated to reflect the current behavior.
*  Public API reduced to what is currently in use.
*  Protected data members made private.
*  volatile bool members changed to std::atomic<bool>.
*  std::atomic<int> members changed to std::atomic<bool>.
Split Stoppable test out to a separate file.