Only quote newline characters where necessary. fixes #1484

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
tahoe_ls.py: JSON responses don't need quotemarks or quoted newlines.

Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org>
update /src/allmydata/util/rrefutil.py to check for ipv6 localhost and for the ipv6 hint; update RE in /src/allmydata/util/iputil.py to support ipv6, plus a more robust version of ipv4, this includes removing the _netbsd_re due to it being identical to the _linux_re
Fix IPv6 regular expression to not be greedy.  Combine a few cases, like
cygwin + win32.  Write tests for OS X (v4 & v6), Linux (v4 & v6), Win32
(v4).
check for IPv6 "any interface" :: address
Working IPv6 first run.  Then tub.port from the furl file takes over and no longer listens on "tcp6:0".  More fixes to come
Remove fe80:: addresses.  Include IPv4 addresses from the old format.  List IPv6 addresses LAST in the furl, because it seems that on my computer this prioritizes IPv6.  I will figure out if this really is the case or some sort of timing issue.
detect if I'm listening on an IPv6 address, if so, record my port number as tcp6:portnum instead of portnum
Add 'preferipv4' to the [node] section of tahoe.cfg to prefer ipv4
behavior over other behavior.  I'm not sure if this works yet, but
the testing continue.  There may be an issue with how my computer
is configured.  It may also be nessecary to include something like
this on platforms that only listen on either ipv4 or ipv6, unlike
Linux which treats any IPv6 listener as both.

Fix to_human_encoding and OPTIONALHTTPLEAD to be correct.
to_human_encoding is now two functions, one for each version of
IP.

Update URI tests to include ipv6 human encoding tests.  This fixes
many of the tests that failed.  I'm still working on figuring out
if there are more broken tests.

Update the web root.py to check if an address is IPv6 and pretty
print it in the new format for furls.  Update the IPv4 printing
to print it in the new format also.
Add list of MAC addresses to list of local addresses, use those addresses and a new ipv6privacy variable in the node section of the tahoe.cfg to enable dropping ipv6 addresses associated with a MAC address.  This is NOT advised with the introducer, privacy addresses change every few hours, they are globablly addressable, so they should function for nodes though.
make preferipv4 boolean
fix windows REs and tests associated.  Windows should now detect ipv6 addresses and work with getting rid of MAC associated addresses
convert preferIPv4 boolean variable to ipversion tri-state: preferv6 (default), preferv4, v4.  Still not sure if this works or if it works in the opposite sense I'm expecting it to work in.
Greg Troxel helped me understand some things about dual stack vs split stack v4/v6 implementations, it should now work in both cases.  The configuration options are now outgoingfamily as either preferv6 or preferv4 and incomingFamily as inet, inet6, or both
Add option for enabling link local address, off by default. Fix log so that it's really a log, and not just a print statement
add IPv6 tests to client and introducer tests.  For tests that include an IPv4 test, an IPv6 test was added.  For furls where there was an IPv4 address, IPv6 addresses were added
Rebase-Merge branch 'ipv6' of github.com:ClashTheBunny/tahoe-lafs into ipv6