Merge from upstream.

 * Pull out appId fetching into own class.
 * Document external helpers in README
 * Only send INIT to shared-access devices (currently HID)