update logmod.py to include pep8 changes to Twiggy

addEmitters function has been obsoleted in Twiggy 0.4 onwards.
Fixing this dependency
Merge remote-tracking branch 'bemehow/master'
Support Twiggy 0.2 and 0.4 APIs
A start on API docs

Really shows where we are lacking docstrings (mostly everywhere!).
Resurrected an old chat example

Updated from diesel 1.x to diesel 3.x and added a client example.
Fix ConnectionPool pool_max bug

Normal ConnectionPools are able to be created at the module level,
outside of any diesel Loop. This is a useful feature. However, if you
specified a pool_max value when creating your ConnectionPool outside of
a Loop, you'd get an exception.

This fix changes the way the sentinel values are added to the
remaining_conns Queue in the ConnectionPool constructor. It adds them
without firing any diesel events.
Unblock the dpython command

Previously it just used raw_input for getting input from the terminal.
It now uses diesel's create_line_input_stream function to read from
stdin in a non-blocking fashion.

idpython still blocks. Need to figure out how to work non-blocking input
into it.
setup.py: Add pyev to additional_requires if no select.epoll available
Handle fact that pyev.version() doesn't seem to exist in pyev==0.9.0
Add tox.ini for tox
Add "from __future__ import absolute_import" to diesel/protocols/DNS.py
so that imports from "dns" don't grab from DNS.py itself on
case-insensitive filesystems.
Build a correct pyev 0.9.0 version tuple
Merge pull request #82 from msabramo/setup_py_add_pyvev_dep_if_necessary

setup.py: Add pyev to additional_requires if no select.epoll available
Merge pull request #86 from msabramo/absolute_import_dns

Add "from __future__ import absolute_import" to diesel/protocols/DNS.py
Merge branch 'tox'
Handle fd reuse during epoll callback processing

There is a comment to this effect, but file descriptors can get reused.
If a read event and write event were triggered for a fd and the read
callback unregistered the fd (because the remote closed) and then
attempted a reconnect and the fd was reused when registerd, the write
callback was still getting invoked in the same iteration of event
handling. However, the callback wasn't intended for a disconnected
socket.

The bug was observed when attempting to reconnect dropped SSL
connections in a try/except block. It was causing the event hub
to freeze up indefinitely.

The event hub now tracks an ID for file descriptors and checks that the
ID at the start of even processing for a fd is the same after doing read
callback handling. If the ID changes the write callback is not invoked.
Merge remote-tracking branch 'dowski/os-signals' into os-signals
Make sure to stop the PyEv watcher

Without this, PyEv 0.9 and LibEv 4.15 were segfaulting.