Work around Pebble.sendAppMessage double callback call issue
Work around Pebble.sendAppMessage double callback call issue

If the JavaScript thread immediately moves onto a job that takes longer
than a few seconds after successfully sending an app message, upon
returning from the long job, Pebble.sendAppMessage will call the failure
callback with a timed out error even though it has already called the
success handler before the long job. MessageQueue expects
Pebble.sendAppMessage calls and callback calls to be one-to-one and will
fail when it is skewed either way.

This fixes the issue by giving the callbacks references to the message
they were sent with. If the last sent message of the queue itself is
different from the reference given to the callback, then it is an extra
callback call and is subsequently ignored.

pebble/pebblejs,sunshineyyy/CatchOneBus,daduke/LMSController,bkbilly/Tvheadend-EPG,bkbilly/Tvheadend-EPG,gwijsman/OpenRemotePebble,ishepard/TransmissionTorrent,jsfi/pebblejs,youtux/PebbleShows,youtux/pebblejs,effata/pebblejs,ishepard/TransmissionTorrent,effata/pebblejs,youtux/PebbleShows,frizzr/CatchOneBus,jsfi/pebblejs,sunshineyyy/CatchOneBus,carlo-colombo/dublin-bus-pebble,daduke/LMSController,sunshineyyy/CatchOneBus,jiangege/pebblejs-project,youtux/pebblejs,bkbilly/Tvheadend-EPG,demophoon/Trimet-Tracker,demophoon/Trimet-Tracker,gwijsman/OpenRemotePebble,ishepard/TransmissionTorrent,jiangege/pebblejs-project,pebble/pebblejs,sunshineyyy/CatchOneBus,sunshineyyy/CatchOneBus,effata/pebblejs,ishepard/TransmissionTorrent,youtux/pebblejs,ento/pebblejs,demophoon/Trimet-Tracker,gwijsman/OpenRemotePebble,youtux/PebbleShows,jsfi/pebblejs,youtux/pebblejs,jiangege/pebblejs-project,ento/pebblejs,pebble/pebblejs,carlo-colombo/dublin-bus-pebble,bkbilly/Tvheadend-EPG,effata/pebblejs,ento/pebblejs,pebble/pebblejs,bkbilly/Tvheadend-EPG,carlo-colombo/dublin-bus-pebble,carlo-colombo/dublin-bus-pebble,frizzr/CatchOneBus,daduke/LMSController,gwijsman/OpenRemotePebble,demophoon/Trimet-Tracker,daduke/LMSController,pebble/pebblejs,fletchto99/pebblejs,fletchto99/pebblejs,frizzr/CatchOneBus,youtux/PebbleShows,jsfi/pebblejs,fletchto99/pebblejs,daduke/LMSController,frizzr/CatchOneBus,youtux/pebblejs,jiangege/pebblejs-project,effata/pebblejs,ento/pebblejs,fletchto99/pebblejs,carlo-colombo/dublin-bus-pebble,ishepard/TransmissionTorrent,gwijsman/OpenRemotePebble,fletchto99/pebblejs,jsfi/pebblejs,ento/pebblejs,demophoon/Trimet-Tracker,jiangege/pebblejs-project