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>.

@nbougalis, @rec 
This phrase is repeated three times.  Consider perhaps having a single spot towards the top where you go through the lifespan of stoppables in slightly more detail and referring to that... perhaps in the Javadoc for the class itself?