utils_posix: add goodies for later

This code has been adapted from the posix implementation of the
updater/unix.py.  I want to use it to improve the code in system,
as well as to reduce the size of updater/unix.py.
system_posix: reimplement drop_root_privileges using utils_posix
utils_net.py: now python3 compliant

1. Python 3 removed the possibility of passing a compare function
   to sort() and sorted().  So, pass them instead a key function, which
   indicates the key of the tuple to be used to sort the list;

2. access to exceptions using .args member, since in python3 it is
   not possible to iterate exceptions;

3. utils_net: harmonize isconnected() behavior with python2 and python3,
   since python3 has a more clever handling of stacktraces and prints
   nested traces, which makes error slippage evident, which is not what
   I want to do in this context.  So, rewrite this function such that
   the printed output is the same with python2 and python3.
Import six 1.2.0

Six will be used to ease the transition from the current code
base, which supports python2 only, to a code base that works
with both version 2 and versione 3 of python.
neubot/server.py: get rid of common main
Next evolution of networking code

The poller is basically unchanged, except that it was moved from
neubot/net/ to neubot/.  New stream etc. share most code with
old networing code, except that the interface with high level
protocols, e.g. HTTP, has been radically changed.  (In a certain
sense this is a return to January 2011 networking code, given
that now protocol code has to specify a callback for each slow
I/O operation requested, in order to disentangle the tree.)

The plan is to keep around both the new and the old code, to be
able to refine the new code in tree, and to allow for smooth
migration from the old to the new networking code.  I've been
working in background on that for a long time, but nothing beats
having the code in the tree and experimenting with it.
Next evolution of http client

This new HTTP client is more compact than the previous one, but
shares a lot of code with it.  The main difference is that now
all the work is done in a single class, i.e. the total
abstraction has been reduced.

As for the new networking code, I am keeping the old code
around, to test and polish the new code in tree, as well as to
allow for smooth transition from the old to the new.
neubot/http: note the destiny of files inside this directory

Yesterday I merged with the tree the new HTTP client code, so
better to make it clear that the old HTTP interface is now being
deprecated and will eventually be removed.  As happened in the
past, this is not going to happen soon, since I want to perform
a smooth transition from the old to the new code.

Anyway, drop a short note in each file saying what its destiny
is, so that who reads the code is informed.
neubot/http: note the destiny of files inside this directory

Yesterday I merged with the tree the new HTTP client code, so
better to make it clear that the old HTTP interface is now being
deprecated and will eventually be removed.  As happened in the
past, this is not going to happen soon, since I want to perform
a smooth transition from the old to the new code.

Anyway, drop a short note in each file saying what its destiny
is, so that who reads the code is informed.
http_utils: allow to pretty-print json bodies
Merge remote-tracking branch 'origin/master'