16971 work package forms endpoint

[``* `#16971` Work package forms endpoint for API V3``](https://community.openproject.org/work_packages/16971)
Why are you matching against all of the possible routes.? Grape/ActionDispatch doesn't. The regexes used for defining the routes do not have to be disjunctive. The first matching route wins. 

The routes are ordered and as such I would:
1) ensure the order of the routes is identical to the one Grape uses for dispatching.
2) exit on the first matching route.