Add InputStream and OutputStream classes and default object

This is an alternative to #39.
It includes most of the changes discussed there.

The main difference is that there are not 3 kinds of arguments (e.g. `device`, `input_device` and `output_device`) anymore.
Instead, there is only one kind of argument (e.g. `device`) which can optionally hold a pair of values (first for "input", second for "output").

The attributes of the `default` object can also optionally hold pairs of values, eg. `pa.default.channels = 2, 1`.
The most common case, however, will be to assign single values which are used for both input and output.
To get/set single values for only one of input/output, `pa.default["input"].channels` and `pa.default["output"].channels` can be used, respectively.

Also, as discussed in #39, the functions `default_input_device()` and `default_output_device()` are incorporated into `pa.default.device`.