Merge trains-branch into extern/trains.

Conflicts:
	extern/trains/README.md