add support for persistent connection

if APNS.cache_connection flag is set, connection to APNS will remain open and available for further using
in this mode you have to close connection manually when you don't need it anymore (e.g. on program shutdown) by calling APNS.close_cached_connection
Merge branch 'add-persistent-connection'