Cleans up train latching/unlatching

Cleans up train latching and unlatching. The proc responsible for latching trains only latches a train onto the end of another one - this simplifies the logic a bit. Also gives the player more detailed feedback when a train cannot be latched or unlatched, and adds a verb for turning off train engines.
This may need to change if we end up running with directionless sprites (because crates look ugly when they are sideways on trains).