Add InputStream/OutputStream and many more changes

- remove some irrelevant fields from api/device dicts

- replace device dicts with plain device IDs in Stream constructor
  and add more arguments (as replacement for dicts)

- change apis() to hostapi_info() and devices() to device_info().
  Both take an optional device ID.

... and several more things.
Add options latency='low' and latency='high'
Change stream flags to named parameters