move put/take logic into Process
first step at "pushing" select, using 2 sets of maybe readers + maybe writers per channel
add example.select.pingpong to test the degenerated case of selecting over 1 operation