Two small changes to server.py that allow it to run on python2.2
server.py: slightly rearrange previous commit.

Add some documentation about the int() vs long() and the reason behind
_shl().  Instead of "from __future__ import generators", just don't use
generators.
firewall.py: catch SIGINT and SIGTERM too.

There were still a few conditions under some OSes that would cause
firewall.py to terminate without cleaning up the firewall settings.  'pkill
sshuttle' was one of them.  Ignore a couple more signals to further ensure a
correct cleanup.

(This only affects sshuttle --firewall, which is a subprocess of the main
sshuttle process.  The firewall is supposed to exit automatically whenever
the client exits, and so far that part seems to work reliably.)
Document missing --dns option in sshuttle manpage
Added --exclude-from feature.

(Slightly modified by apenwarr)
auto-hosts: don't add hosts that aren't being routed by sshuttle.

I've been meaning to add this patch for a long time, but it's especially
important once we add FQDN support to --auto-hosts.  Basically, auto-hosts
will still discover all the hostnames it can, but we'll only add them to
/etc/hosts if their IP address is in one of the routed subnet ranges.  That
prevents polluting the /etc/hosts file with cruft.
hostwatch: handle fully qualified domain names

(slightly modified by apenwarr)
Merge branch 'fqdn'

* fqdn:
  hostwatch: handle fully qualified domain names
  auto-hosts: don't add hosts that aren't being routed by sshuttle.
README: add a suggestion to try the MacOS GUI app.
Merge remote-tracking branch 'upstream/master'