New vehicle framework

- Implements a new vehicle framework
- Adds cargo trains
Make drone light into verb

Removes the penlight and builds a low power LED into the chassis.
Already tested to work locally, won't ghost a light.
Merge pull request #5216 from Loganbacca/trainmerge

Cargo Trains
Rune drawing update
Cargo train bugfixes

Also adds admin messaging when someone gets run over.
Merge pull request #5250 from Kelenius/OfCultistsAndRunes

Rune drawing update
Merge pull request #5239 from Nerezza/dronelights

Built-in drone lighting
Merge pull request #5251 from Loganbacca/train

Cargo train bugfixes
Docking overrides now have a clear purpose

Originally the purpose of the docking override was to allow the shuttle
to move even if it couldn't undock properly (e.g. the doors were stuck
open), however it makes more sense just to have the shuttle take care of
that. This commit now makes the behaviour of the docking overrides line
up with it's new purpose.
Shuttle console refactoring

Also adjusted the way undocking signals were used.
Adjusts how undocking signals are used

Now both server and client will to undock concurrently. It looks much
more natural.
Adds mining shuttle docking controllers
Streamlined docking code

Server and client now have more consistent responsibilities.
Ferry shuttles will always be forced undocked when moved, even if moved
by admin magic.
Adds engineering shuttle docking controllers

Also fixed bad req_access_txt. Was accidentally using req_access_txt
instead of req_one_access_txt. Fixed virology maint not having any
access codes set.
Adds arrivals docking controllers
Adds centcom and admin shuttle docking controllers
Adds docking control to ERT shuttle