Merge from upstream.

 * Pull out appId fetching into own class.
 * Document external helpers in README
 * Only send INIT to shared-access devices (currently HID)
Dead line. I'll send a CL.