Thread::Join() is now public.

This is specifically to support TcpSession::Terminate(), but I beleive this
is ok more generally: If a code has a handle to another thread, I don't see
any good reason why it shouldn't be allowed to Join() that thread.
Add SocketTcpSession::Terminate()

This is called by SocketTcpServer::~SocketTcpServer(), per each
SocketTcpSession, immediately *before* calling the SocketTcpSession's
virtual dtor. This guarantees that the session thread has exited
before we destroy the session.

This synchronisation is currently done in extensive per-subclass
boilerplate: We should be able to remove that code now.
Fix potential deadlock if the code inside timer callbacks publishes property updates
Merge branch 'master' of ssh://core.linn.co.uk/home/git/ohnet
Updated to iOS 6.1 sdk