Added functional tests for the versioning scenario

This PR adds functional tests for implementing versioning using attribute routing following different approaches to validate that the scenarios are possible.
Nah, this is very specific for routing and versioning tests and we don't expect to be duplicating this class all over the place. It's better to have it isolated here so that it only relates to routing tests and versioning tests have their own copy of this class that can evolve separately if needed.