Finished removing use of std::queue replacing with an iterable SamWindowNode.
Addressed some of comments from @MauricioCarneiro. Others to be address post discussion.
Refactored class initializion, and removed impotent destructors.
Removed overly java-ish is_ prefix from all boolean functions, but left on SamWindow::is_empty()
Changed SamWindowIterator contig/position variable names for consistency.
Moved sam_window_reader_test into sam_reader_test.
Started moving SamWindowReader into SamReader, with constructor overloads, but couldn't manage syntax to overload begin() to return different iterator types.
Also couldn't manage syntax to return reference in currently "C++98" SamWindowNode::dequeue_record().