Split model update, commentated BFS

- Split the update in the model to facilitate future update on
detection-as-things-happen and difference data.
- changed GetPlayers to GetCopyOfPlayerList. Should look into readyonly
properties, but it's not good when players can be removed while
connected. They are automatically removed when they're not.
- moved the BFS-to-range to /Map/Geography and wrote commentary for it