Fixed a bug where the feedback client could be created with a null event loop group; added a regression test.
Merge branch 'threadless_connections' into connection_failure_listener

Conflicts:
	src/main/java/com/relayrides/pushy/apns/PushManager.java
Check for writeability before attempting to send a notification.
Merge branch 'threadless_connections' of github.com:relayrides/pushy into threadless_connections
Merge branch 'threadless_connections' of github.com:relayrides/pushy into connection_failure_listener
Moved auto-close configuration into the bootstrap phase, rather than the post-connection phase.
Switched to pooled buffers.
Added global timeouts for tests (so if something hangs in Travis, at least we know which test caused/detected the problem).
Fixed some fragile waiting conditions in tests.
Revert "Check for writeability before attempting to send a notification."

This reverts commit f46fd095f09262731c9c90c49d0e30b903f31ef8.
Added channel writability changes to the ApnsConnectionListener interface. Switched from a connection counter to a connection set.
Used simple synchronization instead of locks now that we're down to a single connection in ApnsConnectionPool.
Simplified synchronization for the active connection set.
Did away with locks in ApnsConnection.
Reduced synchonization by counting on the channel's event loop to enforce ordering.
Merge branch 'threadless_connections' into connection_failure_listener

Conflicts:
	src/main/java/com/relayrides/pushy/apns/PushManager.java
Fixed some writable pool management goofs (not interrupting the dispatch thread, not removing from the writable pool even though the connection's closed).
No need to call `submit` since we're just discarding the `Future`.
Merge branch 'threadless_connections' into connection_failure_listener

Conflicts:
	src/main/java/com/relayrides/pushy/apns/PushManager.java
Merge branch 'connection_failure_listener' into drain_retry_queue_before_shutdown_take2

Conflicts:
	src/main/java/com/relayrides/pushy/apns/PushManager.java