Define how ports are requested, including security/privacy model (closes #25, #20, #19, #4, #26)

Detailed discussions are in #25, #20, #19, #4.

* Defined how requestPorts() method works
* defined how getInfo() works
* made SerialPortInfo into a map (was SerialPortDetails)
* introduced the concept of "recommended serial port metadata"
* defined the rules for "getting serial port metadata"
* Updated the security considerations section.
* removed pnpId