Trainyard is NP-hard