game: Split off function game_can_build_road() from game_build_road()

This new function can be used to check whether a partial road is a valid construction. This is then used in interface to check the whole road when a segment is added or removed from the current construction. If the road is no longer deemed valid because of unrelated changes to the map, the road building mode is cancelled.