M-Lab: adapt to new deployment style

Now Measurement Lab provides some support for deploying an experiment
to slivers. This commit adapts existing code to their conventions.

Part of the code has been moved into a dedicated repository, which
is currently hosted at::

    https://github.com/bassosimone/neubot_mlab

To better understand this commit, it is particularly helpful to
consider the documentation of `neubot_mlab`::

    https://github.com/bassosimone/neubot_mlab/blob/master/documentation.png

The most relevant change is that we don't need anymore to start
syslogd and rsync, because this is now done automatically.

While writing this diff, I also added some extra checks; e.g., that
the scripts are invoked by root.
server: Add -A option to choose the address to bind()

Reduces the number of warnings when starting up a neubot
instance. It does not remove it, because on M-Lab it is
still not possible to bind port 80.

Request/suggested by Stephen.
M-Lab/ports.txt: we're now using IPv6
server: add -D server.datadir=FOO switch to set datadir to FOO

Works when the backend is `mlab` only, since this is the only
backend that supports setting the data directory.

Requested by Stephen, because Measurement Lab wants experiments
results to be saved in /var/spool/${slice}.
Move master-server related scripts from M-Lab to MasterSrv

This commit does not touch the content of the scripts, for
additional clarity. I will do that in next commits.

I'm moving those scripts because they now have nothing to do
with the M-Lab directory, while they are related with the
master server.
MasterSrv: make sure recently-moved scripts work again

The only trick bit of this commit is that now ls.py is not
part of the repository anymore.
MasterSrv/servers.py: minor changes

Don't use asyncore for printing the exception; use logging.error
exc_info feature instead.

Tweak some comments and dispose of some blank lines.

Make sure we sort hosts: it is annoying to do that manually.
MasterSrv: update the list of servers
server.py: avoid access to nonexistent STATE attribute

Spotted using pylint.
M-Lab/ports.txt: remove 7999 (rsync) and add 80 (now available!)

Update M-Lab/ports.txt according to Stephen's direction: now rsync
is handled by M-Lab init scripts, and port 80 is now available on
the slivers. The latter is very good and much welcome news!
M-Lab/check.sh: skip port 7999

We don't need to worry about port 7999 anymore, as now rsync is
managed by M-Lab scripts.
M-Lab: add code to start/check on IPv4 only machines
Merge branch 'stable_mlab_20130321b'

Conflicts:
	M-Lab/ports_ipv4.txt
	neubot/server.py
agent utils_posix: add and use code to remove pidfile

It makes sense in general to remove the pidfile. I need to add this
piece of code now because M-Lab/stop.sh should not try to stop Neubot
when it is not running.
server.py: Reinstate import line lost during merge with stable_mlab
M-Lab/start.sh: force ownership of files and dirs below $DATADIR
Merge branch 'stable_mlab_20131012'

After more than three hours of testing with one of the M-Lab tests
servers, without having noticed significant problems, I think we
can bless this code and bring it into master.
M-Lab/start.sh: slice -> sliver in a comment

Damn, I always confuse the slice and the sliver concepts!
ChangeLog: release 0.4.16.3