Behavioral cleanup

- Lock call to other thread on channel0 frames
- Don't reuse name exceptions
- Let the connection shutdown the thread on exception, don't do it internally
- Remove internal exception handling, rely on main thread
- Don't starve the writer when there are messages to read
Cleanup exception, closing, and waiting on frame behavior

- ensure exceptions from queue are marked as done
- Add the ability to force a channel as closed
- Don't rely on sleep in the wait on frame loop, but rather block on queue get with a timeout (#27)
- Provide a stub method for intercepting frames that is used in the channel.Channel class
- Streamline exception checking
Merge branch 'master' of github.com:gmr/rabbitpy