Use a pool for APN connections

The connections to APN are the only connections in pling that are
steadily held open (Apple requires this).

Without a connection pool there might be race-conditions when using
pling in a multi-threaded context.

This adds a connection pool so that only one thread at a time can use an
open connection to APN.
Cache connections in GCM and C2DM gateways per thread

Instead of caching the connections in the C2DM and GCM gateways in
instance variables, we use the thread local storage provided by
`Thread.current`.

The reason for that is thread safety, since gateway objects are
practically singleton objects that can be used by multiple threads at
the same time.

With this change each thread that calls `deliver` on a gateway gets a
fresh connection object and doesn't interfer with the other threads'
state.
Do not cache C2DM/GCM gateway connections

Using Thread.current is basically using a hidden global variable. This
is simpler and safer.
Travis: drop 1.8.7, ree and rbx-19mode. add rbx-2
Merge pull request #2 from mrnugget/connection_pool

Make pling thread safe by using a connection pool and thread local storage