CPP-162 - Fix for spurious request hang

Refactored/Simplified SPSC and renamed some variables in MPMC to be
more consistent. Added some tests for both.