the beginnings of client viewport watching/spawning

so that we can periodically change the loaded viewport when the player
is out of range of it, send the viewport update which the client would
then discard all entities outside of it and then we will send spawned
messages for ones that are new.

we need to make a spatialhash system for this first though, i believe.

i contemplated using the groupmanager and/or tags, and querying via
e.g. "inworld", which might still have a usage, but i'd still want to
query a range of entities..versus iterating over all the damn ones.

so the playersystem would need to access the spatialhash system and
query it, which should be quite easy.