Harden keepalive processing

The following pattern showed up in the logs:

Oct 21 18:12:21 debian-testing cloudprint.py: Polling for jobs on MFCJ5910DW
Oct 21 19:12:22 debian-testing cloudprint.py: Polling for jobs on MFC490CW
Oct 21 19:12:22 debian-testing cloudprint.py: Polling for jobs on MFCJ5910DW
Oct 21 19:31:53 debian-testing cloudprint.py: Sending XMPP keepalive
Oct 21 19:31:53 debian-testing cloudprint.py: ERROR: Could not Connect to Cloud Service. Will Try again in 60 Seconds
Oct 21 19:32:53 debian-testing cloudprint.py: Polling for jobs on MFC490CW
Oct 21 19:32:53 debian-testing cloudprint.py: Polling for jobs on MFCJ5910DW
Oct 21 19:32:54 debian-testing cloudprint.py: Establishing connection to xmpp server talk.google.com:5223
Oct 21 19:32:54 debian-testing cloudprint.py: ERROR: Could not Connect to Cloud Service. Will Try again in 60 Seconds
Oct 21 19:33:54 debian-testing cloudprint.py: Polling for jobs on MFC490CW
Oct 21 19:33:54 debian-testing cloudprint.py: Polling for jobs on MFCJ5910DW

keepalives are oddly rare (while set to 600 seconds). In this log,
the first keepalive was over a day in coming, and xmpp persistently failed
after the first keepalive attempt.

This commit has a number of changes to avoid problems with keepalive processing:
 - Initialize at class creation
 - Set to a valid number on close
 - Update early in the read/write routines.
Add xmpp error check to _check_for_notification()

It looks like xmpp msg()'s can result in more than one clause
returned by the host, and that only one is processed per msg()
call. If so, it is possible that a failure may not be processed
until the notification call, which does not check.

Add a failure check to the notification method.