Merged test for #4
Improve performance of connections (Related to #2)

Being that slot_id's used to compare slots always increment and are
therefore always in ascending order (you can't re-add them or rearrange
them), we can improve lookup time when trying to grab a reference to the
socket from a connection by using `std::lower_bound`. Lookup times go
from O(N) to O(log N).