New vehicle framework

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

Cargo Trains