Asyncore rewrite

Added preliminary support for reading endstop switches.
GRunner now uses the python asyncore module for handling audio data and
GPIO's at the same time.

Signed-off-by: David Jander <djander@gmail.com>