Easier to model docking - Part 1

# Description:
The current way of defining how ships dock with a space station is a lot of work, especially when you get more than a handful of docking bays in a station.

This is because you must manually place each locator for the docking and leaving stages for each and every bay. They must be uniquely named, oriented and the whole process is quite painful, error prone and time consuming. The fact that it's actually better than the old-old system is great but not good enough.

This PR changes things so that there is a single entrance locator placed for a group of bays, and then each bay gets a single locator which defines the location and orientation of a docked ship. Almost everything else is then generated by the code to replicate, internally, the existing docking process.

This is considered `Part 1` because it keeps most of the existing docking systems in place. The system is automatic once the player/AI has crossed the entrance threshold.
There will be a `Part 2` which changes the system so that the player can manually fly the ship into their bay, but this is beyond the scope of this PR.

# Current state:
Usable/testable with rough edges and the existing hoop_spacestation is broken.

# ToDo / WIP:
There are a couple of things still to do.
* ~~optional tag/locator defined for an alternative exit allowing ships to enter one way but leave via another~~,
* ~~I might need to solve the hoop_spacestation problem but ideally it would be solved by remodelling it~~,
* testing, testing, testing thoroughly.

Andy
Ahh, I see. gcc warns when you put assignments in conditionals unless you put them in an extra pair of parenthesis.