Invoke the error function on async connect/send failures

- Eliminate the "sync" methodology, all async now.
- Any connect or send errors will now invoke the #apns_connection{error_fun}, if defined.
- The error_fun can distinguish message-oriented errors from connection-oriented errors by matching on `{Owner, MsgId}, {error, WhatFailed, Reason}` instead of (in addition to) `{Owner, MsgId}, Status`.
- Also removed ~n from lager calls while I was in here.