New --enable-expensive-hardening option

It turns on -fsanitize=address and -fsanitize=ubsan if they work.

Most relays won't want this. Some clients may.  Ticket 11477.
Close orconns correctly through channels when setting DisableNetwork to 1
Avoid redundant calls to connection_mark_for_close() on listeners when setting DisableNetwork to 1
Call connection_or_close_for_error() properly if write_to_buf() ever fails on an orconn
ipfw TransPort support on FreeBSD (10267)

This isn't on by default; to get it, you need to set "TransProxyType
ipfw".  (The original patch had automatic detection for whether
/dev/pf is present and openable, but that seems marginally fragile.)
tor_addr_from_sockaddr() is applicable in ipfw code, so use it.
Educate tor on OpenBSD's use of divert-to rules with the pf firewall.

This means that tor can run without needing to communicate with ioctls
to the firewall, and therefore doesn't need to run with privileges to
open the /dev/pf device node.

A new TransProxyType is added for this purpose, "pf-divert"; if the user
specifies this TransProxyType in their torrc, then the pf device node is
never opened and the connection destination is determined with getsockname
(as per pf(4)). The default behaviour (ie., when TransProxyType is "default"
when using the pf firewall) is still to assume that pf is configured with
rdr-to rules.
Whitespace, doc fixes
Fix OSX compilation.
Call pf-divert openbsd-specific, not no-linux
Changes file for 10896
Merge branch '10267_plus_10896_rebased_twice'
Merge remote-tracking branch 'public/bug11477'
Merge remote-tracking branch 'andrea/bug11306'
Merge remote-tracking branch 'andrea/bug11304'
Attribute 13304 and 13306 to 0.2.4.4-alpha.