Ghost scoping

This contains #908, with tweaks so I'm satisfied with the code.

 * Removed the `#define`s
 * Made it fall back to using visible distance if ghost distance is not used
 * Removed ghost distance from level files as it will now default sensibly
 * Renamed `mConnectionVisibleDistance` for consistency
 * Fixed tabs