system: replace running_as_root with has_enough_privs
README: open source -> free software

Prodded by Matteo Castelli.
http_clnt: fix typo: context.{get => handle}_piece

First step of having a support for unbounded responses that
actually works.
brigade: implement getvalue() and simplify getline()

While there, simplify the implementation of readline(), by
removing redundant code to cleanup after pullup(), and by
collapsing an if..else branch into a simple min() statement.
http_clnt: implement unbounded body

More in detail:

- check whether the state is reading unbounded body, when the
  connection is lost and the cause is EOF;

- in such case, take care of a possible bufferised partial
  chunk and dispatch the related event;

- after that dispatch the end of body event;

- add a knob (-C) to force the client to send the 'Connection:
  lost' header, which triggers the unbounded body behavior,
  at lest with mlab-ns.appspot.com and google.it, but possibly
  with other sites as well;

- while there, make one more method static, to please pylint.
http_clnt.py: honor encoding and make python3 happy

This changes the number of parameters expected by the body.write()
function, so I also checked whether raw_negotiate and runner_mlabns
were affected.  The former was affected, and this diff updates it
to use the new style.  The latter was not affected.
http_clnt.py: separate encoding and writing to stdout

Simplifies the task to guess where the failure is when the
data we receive is encoded differently from latin-1.
http_clnt: serialize END_OF_HEADERS and END_OF_BODY

Fixes the testcase of hz.wikipedia.org, which does not return
a body, and breaks existing test client code, since END_OF_BODY
runs during END_OF_HEADERS, causing headaches to the handler
of END_OF_HEADERS.
runner_mlabns: re-enable connection-close header

Since now the base http client has been amended to deal with
unbounded response, we can safely re-enable the connection-
close header of the mlabns client.
raw_negotiate: remove redirection code

It seems mlab-ns does not support redirection yet, and anyway
they convinced me that having an independent client is probably
better and more tidy.
Merge branch 'master' of github.com:neubot/neubot
system_posix: drop_privileges(): remove unused param
Reduce the number of places where we daemonize

The are many main()s around that don't do actually need to
go in background.  Allowing them to do so is just feature
creeping.  So, time to remove that code.
system: simplify go_background() by using utils_posix
agent server: require root permissions

Remove the conditional check in drop_privileges() and fail if
we are not running as root.
system_posix: get rid of lookup_user_info()

While there, remove unused imports to please pylint.
www: open-source -> free software

Prodded by Matteo Castelli.
agent.py: write startup/shutdown log entries
Bump version number to 0.4.16.0

Make sure we don't change rendezvous/server.py, such that,
if we update the master server, we still don't advertise
a new (unstable) version.
networking: allow the caller to pass extra data to the listener

Needed to implement the new HTTP server.  Propagate changes.