User defined locals in manhole shell

Typically, when you add a manhole to existing application, the
application was not designed for this, so finding stuff from the manhole
shell is hard or even impossible.

This patch adds a new locals optional argument, allowing a user to add
application specific objects to manhole shell locals.

Example usage:

    manhole.install(locals={'server', my_server})

From the manhole shell, you can now use "server":

    >>> server.status()

When using automatic installation in child process, the locals are
inherited by the child process. It is the responsibility of the user to
handle object that became invalid after the fork.
Update changelog.
Log the time on debug messages.
Fix leftover /tmp/manhole-pid sockets in the tests

manhole.install() registers an exit function removing the manhole
socket, but atexit function do not run when process is terminated by an
unhandled signal.

In the fork tests, we avoid this issue by terminating child processes
with SIGINT, however the test child processes, created by the
process_tests library, are terminate using SIGTERM in
TestProcess.__exit__.

Adding SIGTERM signal handler fixed this issue.

We probably need to document this as a workaround for issue #8
Merge branch 'tests-cleanup' of https://github.com/nirs/python-manhole
Fix hyperlink syntax in the changelog

Commit 9578b3bd5ca introduced this error in the "check" target:

    warning: check: Duplicate explicit target name: "nir soffer".
Cleanup Darwin and FreeBSD compatibility code

get_peercred used duplicate code because different names were used for
the platform dependent constants. The constants were also using hard
coded values instead of values from the socket module when possible.

The platform is detected now using sys.platform, which is compile time
setting, and is easier to predict looking at Lib/plat-xxx directories in
the cpython source.

We use now the same names for both constants, and the value defined in
the socket module if the name is defined, or the hardcoded value. The
new private constants are moved near the function using them.
Add a known issues section for #8.
Add a `daemon_connection` install option.
Move the subprocess code in a helper file. Fixes #15.
Add tests for daemon_connection.
Oooops, fix "huge typo". Tests weren't testing correctly.
Skip the daemon tests on eventlet. Convert other conditional tests to use the skipif marker.
Fix the condition on the test_signalfd_weirdness_negative skip.
Add redirect_stderr option

This patch adds a new redirect_stderr option. When set to False, only
sys.stdout is patched and used for condole output. The default value is
True, keeping the current behavior.

Redirecting stderr can cause the console to become unusable becuase
Python is writing errors to stderr when it cannot raise an exception.
For example, during interpeter shutdown, or when code in __del__ method
raises an exception.

For example, in vdsm, we get this error every few seconds:

    Exception RuntimeError: RuntimeError('cannot notify on un-acquired lock',)
    in <module 'threading' from '/usr/lib64/python2.7/threading.pyc'> ignored

While fixing such issues may be possible, it may not be practicle in
large code base. Avoding redirection of stderr allow using manhole in
such case.
Fix tests compatibility with PyPy
Disable "--pre"
Revert "Disable "--pre""

This reverts commit 1cf87111c0dc4e1ee77a40253b4c8a7b49fc4efb.
Remove unneeded signal mask in connection thread

Threads inherit the signal mask from the parent thread. There is no need
to set the signal mask again.

A new test ensures that build will fail if this does not work as
documented on some platform.
Revert "Revert "Disable "--pre"""

This reverts commit 9901544a126979e611825af361547e3c49419553.