boot: remove unneeded dependencies.
env: abstract html5/node differences with r5js.js.Environment interface.
runtime: inject appropriate r5js.js.Environment into boot sequence.
runtime+misc: add and use r5js.CallbackBackedPort.DISCARD.
runtime: improve typing of r5js.CallbackBackedPort.
port: split r5js.Port into Input and Output subinterfaces.
port: remove unuseful r5js.OutputPort#writeChar.