* use version of shred that has an added SendDispatcher so we can
construct the dispatcher and send it between threads (only State to
remain sendable)
* move closure for adding systems from State::tick to the creation
functions
* this does mean some voxygen systems always run instead of just in the
session state, but that should not cause issues and we can always
configure them to do nothing if needed