Optionally close connections when inactive

This is the first part in a series of changes to work around the inability to determine the state of an APNs connection. Because we can't determine if a channel is "alive" or not except by sending a known-bad notification (thereby closing the connection), the big idea is to close connections more frequently. In this pull request, we allow connections to close after a user-configurable period of inactivity.

One consideration here is that, if a push manager is completely idle, it might just sit there opening and closing connections at regular intervals. That seems pretty okay, to me, though.

EDIT: Also, please pardon all of the auto-formatting stuff (like `@Override` annotations) that's happening since we moved from Java 1.5 to Java 1.6.
Can `configuration` be null as well? If so, an extra null check for that as well would be great.