Fix memory corruption in service_connection_t.

Before i used std::map to store sessions. Std::map doesn't invalidate iterators unless the item referenced by the iterator is removed. Not long ago i have replaced map with unordered_map, which uses a hash table and invalidates iterators (because of the table reallocation). So now i access sessions only under mutex even through an iterator.