start refactoring to allow builder to connect to webapp via ssh tunnel

Introduced ISocket interface as abstraction of connection
from builder to webapp.
implementation of ssh tunneling for builder->webapp connection
working on changes to allow builder/webapp to communicate without SSL

The idea is that if we are using an ssh tunnel for communication,
then implementing SSL in the builder/webapp is unnecessary.
Not sure if this will be useful.
ignore /nopoke files
if not using SSL, allow connections only from localhost and host's IP

This is kind of cheesy: the webapp is still listening for
connections from all sources.  It would be nice if there were
a way that a single server socket could listen on a specified
SET of addresses.  (Actually: probably JUST listening on the
host IP as determined from the cloudcoder.submitsvc.oop.host
property might work.)
Merge remote-tracking branch 'origin/allow-no-ssl'
bugfix: set socket/in/out to null if creation of oois/ooos fail

Creating, e.g., an ObjectInputStream can fail because some
header bytes are read.  The problem was that
attemptToConnectToServer() left this.socket non-null
in this case, leading runOnce() to believe that the connection
was valid, leading to an NPE when safeReadObject() attempted
to read the initial problem id from the webapp.

Also added some debugging code to SshTunnelAdapter to log
when the ssh tunnel process was being destroyed.
CloudCoderTools project is no longer used/needed