Add networking support

This should be based on libyojimbo

High level goals:

  • Client <> Server scene synchronisation should do a pretty good job by default using default message types to sync StageNodes.
  • All communication should be overridable.
  • Default should prioritise bandwidth over precision (for Dreamcast 33k/56k) using Snapshot interpolation + compression. Probably make sync rate configurable (e.g. default to 10hz)
  • Need to consider prefabs (e.g. new_prefab_from_stage_node(name, X)) or registering factory functions with the network manager (e.g. network->register_entity_factory(entity_id, callback)) for spawning new objects on remote clients.
  • Need to consider that some platforms have a "connecting" state (e.g. Dreamcast dialling)
Edited by Luke Benstead