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.
Right. In that case it should just become src.attach_to(T, user). One of the big issues when testing was that it wasn't clear whether I was attaching a car as a leader or follower, so having a consistent mechanism (always attach the dragged car as the follower) would be good.

Although, direction will still matter, since trains cannot go backwards... so giving the user some visual feedback on which way the train is pointing would be good. It might look fine if we have a sprite that is almost non-directonal, like the current MULE bots, but has some visual indication of where the front is.

Either that or maybe have them look like a carriage bucket that doesn't rotate while the set of wheels underneath changes direction.