begin pulling http and protocols to their own modules; rename test_vanilla to test_core
test hub via vanilla, to check imports
rework hub stop
add ability to trigger a callback on pipe close
rework io to make use of onclose trigger
rework Gate; use Gate in io.Sender