Reduce number of mutex operations by replacing synchronized_queue<T>.
Some crazy bugs to fix.
Rename private instance member variables.
Initialize nat in the same thread.

This avoids a race where NAT thread would map a wrong external port.
Start and stop audio session.
Simplify flags setting code.
Add section heading comment.
Reset stream pointer after end_session().
Idea for enabling output after some packets have been cached.
Need to change JB setting to milliseconds instead of packet count.
Update member function docs.
Only read datagram from stream if packet_source is enabled.

This avoids a crash where stream pointer becomes null before reading
the datagram. This is a bug and must be fixed elsewhere in addition to
this workaround.
Bump routing submodule.