Expose Handle and Stream base classes

Fixes #161
process: make Process.spawn more similar with Popen
process: make code more readable
process: allow args to be a bytes object
process: added more tests