Implement a non-uniform version of Trains

By delivering tains after only 1 round instead of 2, we get a non-uniform version of Trains protocol. We put in place a compilation flag to decide if we want a uniform or a non-uniform version of the implentation.