Fixed hot loop in AsyncoreProtocol

AsyncoreProtocol did not override writable(), leaving the default from asyncore.dispatcher which always returns True. This caused the select loop to always complete immediately, leading to a hot loop.

I've fixed this by using a dummy dispatcher to set up a socket connection that can "kick" the loop when the user enqueues a command. This solution is not very clean. I describe in detail why I couldn't use a much simpler method in the changelog inside the source code for backend.py.