Cleaned up the interruption management for the Storage Engine.

- Added more condition_variables in the Storage Engine to exit all
  processing loops when a stop is requested.
- Added calls to IsStopRequested() after each major step of Compaction()
  to all the method to exit if a stop is requested (necessary as this
  method can take a long time).