New vehicle framework

- Implements a new vehicle framework
- Adds cargo trains
Merge pull request #5216 from Loganbacca/trainmerge

Cargo Trains
Squashed commits. Hope I didn't break anything with this...
Merge branch 'ghettosmes' of https://github.com/faerindel/Baystation12 into ghettosmes