Added threading to allow reading of errors from APNs.

• Added the ability to read an error from APNs using a threaded function.
• Added socket timeout of 3 seconds to make sure no errors were received.
• Added info headers to each file.
Re-wrote most functions into LHSAPNclient class as methods and added queuing.

• Notification IDs are made as incremented number.
• Notifications are now made and put in a queue.
• When notifications are sent they are put in the sent list.
• If an error is returned then the notification in question is removed (depending on the status error) and the notifications behind it are put back on the queue.
• If error status of type 1 or 10 then sending its retried again, if they still fail, they are removed.
• The sent list is emptied after an error has occurred and all the unsent notifications have been moved back to the queue.
• Fixed error if NOT 'loc-key' is added to the alert dict but other localisation keys are, then body is still added to the dict.
Fixed feedback methods to work.

• Get feedback data.
• Divide by 38 to get number of chunks.
• Unpack each binary chunk into a turple.
• Store turples in list and return.