added support of enhanced notification format
made the body argument of PayloadAlert optional
fixed tests to test the enhanced format
Use a timout when reading responses from Apple, make sure we reconnect on InvalidToken etc., and inherit response exceptions from common base to better be able to catch them.
Catch socket errors on write