Made "wait for something to send" behavior more sensible/efficient.
Don't add connections to the connection pool if we're already shutting down.
Revert "Made "wait for something to send" behavior more sensible/efficient."

This reverts commit 6bcdc55d22458b6eb79bfccac41abbfe32948ffd.
Updated FeedbackServiceClient docs.
Reused a worker group for feedback tests.
Removed some superfluous setup/teardown methods. Removed a couple maybe-unresolveable TODOs.
Minor: the test should time out if we get interrupted.
More minor interruption tetris (oops).
Poll for thread state (which is what we're really concerned about) instead of relying on Thread.sleep for "make sure we're blocking" tests.
Collapsed the various ApnsConnection handlers into a single class.
Handle business logic asynchronously.
Revert "Revert "Made "wait for something to send" behavior more sensible/efficient.""

This reverts commit ee3f4119fd395f907e4bdf872c4bd1ada4375d19.
Removed an unnecessary optimization and fixed some wacky connection shutdown behavior. Added a test to cover the potentially-bogus shutdown behavior.
Removed an unnecessary call to channel.read.
Clarified behavior for calls to shutdown methods while already shutting down or not connected. Added tests for clarified behavior.
Use an ArrayDeque instead of a LinkedList for the sent notification buffer.
Dropped a commented-out line.
Merge branch 'threadless_connections' of github.com:relayrides/pushy into drain_retry_queue_before_shutdown

Conflicts:
	src/main/java/com/relayrides/pushy/apns/PushManager.java
Added a timeout to the (failing) drain-before-shutdown test.
Fixed some problems with reconnection logic. Interrupt the dispatch thread on shutdown so it notices that it should be draining the retry queue.