Close out chan on quit + ensure successful chan recv

When receiving the quit order, close the output chan.
When receiving from an input chan, check if we did not receive a channel
close nil value, and if so, quit too.
Node embed Runer
Safer way of closing Executor

Previously the QuitChan was flooded with messages to ensure that every
listener could hear the quit request.

Recently, once a Node ears the quit signal, it would close its out chan.
After such this, the node must not be used again ever after, or sending
to the closed output channel would lead to panics.

It could arise situations where a executor.Loop()ed Node quits, but the
executor.Loop() function would not ear the quit signal, Run()ing the
Node again.
FanIn node