Merge from upstream.

 - Global factory registries instead of passing dependencies as
   arguments.
 - AppId verification and enforcement of eTLD+1 policy.
 - Updates to match changed Chrome HID apis
 - Adds Sonovation vid/pid
 - Smaller fixes
Oops, I thought I fixed this comment in a previous CL. Apparently not. I think this is fine as it is, but I'll send a fix anyway.