.gitignore: stop ignoring .pyc files

The benefit was that you don't commit them by mistake, but the
problem is that they persist when you switch branch, some times
causing random bugs.  So, better to remove them.
net/poller.py: better error messages
utils_net: don't pull CONFIG

Instead of pulling CONFIG in utils_net, pull it in net/stream.py and
pass the CONFIG['prefer_ipv6'] parameter around.  In terms of modularity,
it was a bad idea to pull something as core as CONFIG in utils_net.py,
since that reduces the chances of reusing it.

For example it's not possible to import utils_net from python3, because
config.py is not python3-compliant.  Instead, with this patch in it is
again possible to import and use utils_net from python3 code.
updater: allow to configure win32 update check interval
Get rid of neubot/rendezvous/client.py

I found it in my way when trying to conver the runner to always
use deferred and noticed that it was simple to get rid of it
than to convert it to use deferreds.  Now we always switch to
the newer and cleaner neubot/background_rendezvous.py.
add neubot/defer: minimal deferreds implementation

This commit adds a minimal deferreds implementation (which has been
written while just reading twisted documentation and is probably
quite incomplete but fits my needs).

This commit adds also a simple regression test to make sure the
deferred implementation behavior is consistent.
runner_core: use deferreds to make code more robust

This commit makes background_rendezvous and updater_runner much
more robust, by using deferreds to catch unexpected exceptions
and route in any case the flow, so that events that must always
be scheduled -such as the next check for updates or the next
rendezvous with the master server- are always scheduled.

The simplest solution to do that was to modify the runner_core
to always use deferreds.  As a consequence, I needed to amend
runner_api as well to use deferreds.

While there, remove some extra blank lines in small functions,
harmonize the style of logging a bit, and change the way CONFIG
is accessed for storing new variables.
updater: batch of simplification and fixes

1. updater_runner.py: make -O work again

2. runner_dload.py: better log message

3. updater_runner.py: better log messages

4. updater_runner.py: no need to check sha256sum

5. stop passing the channel to UpdaterRunner()

6. move tarball installation to generic code

While there, minimize the diff between updater_runner.py and
updater_win32.py main()s.
updater: use last-modified to retrieve development snapshots
Consolidate version number
Master -> MasterSrv to avoid name clashes with the master branch

Yes, my MacOSX laptop is configured with case INSENSITIVE file
system and this is bad.
script/release: hack support for -n option

Does not commit the changes, but just takes care of updating
the version numbers in the tree.
Bump version number to 0.4.15

Version 0.4.14 was released out of the main branch, in a dedicated
tag (indeed called 0.4.14).  So I need to bump the version number
of the master branch, because the current development version is now
the candidate for 0.4.15.

(Yes, I'm going to release much leass release candidates, now that
I have added code to update the testing channel using the time of
the last modification as an hint.)