remove "spawn", add "go" variations and decorators

Details:
- go_channel: return an output channel that will receive the return value
- go_deferred: return a deferred that will receive the return value
- go: don't deliver return value (whether a deferred is returned depends on implementation)
- process_channel: decorator equivalent of "go_channel"
- process_deferred: decorator equivalent of "go_deferred"
- process: decorator equivalent of "go"

Most of the time go/go_channel and its decorator equivalents should be
used. The ones that return deferreds are mostly used for inter-ops.
use special value CLOSED (still equal to None for now) to signify closed channel when taking
remove test_helpers module, as @csp.process_deferred can be used instead