Use active network DNS server for untunneled hostname resolution in bind-to-device case
Merge remote-tracking branch 'rod/master'
Fix compile errors on Windows
Fix compile error on Linux
README updates
Fix compile error on Linux
Merge remote-tracking branch 'rod/master'
Major rewrite of top-level code.

- replaced runTunnel with controller, which manages and monitors a set of tunnels

- always-on local proxies

- load balance port forwards across multiple simultaneous tunnels

- monitor health of tunnels; for example fail-over to new server on "ssh: rejected: administratively prohibited (open failed)" error

- reconnection busy loop when no network available (ex. close laptop); should wait for network connectivity

- pre-filter entries by capability; don't log "server does not have sufficient capabilities"

- use ContextError in more places

- server API no longer uses the HTTP proxy; it creates its own port forwards

- send session ID in SSH password payload

- pseudo-interruptible TCPConn dial for Windows
Fix SQL syntax errors
Fix dynamic query parameters
Set default tunnel pool size when config parameter is not specified
Set default port forward failure threshold when config parameter is not specified
Fix missing field initialization for TunnelConn (caused nil pointer access)
Fix edge condition: failed to stop establishing once pool was exactly full
Fix channel logic bugs in stopEstablishing
Fix build on Windows
Fix: nil pointer reference in goroutine; cleaned up code to make
references clearer
Updated README
Use forks of dns and sqlite3 libs (vendoring)
Rename main package file; [temporarily] remove non-functioning test.