Refactor project routing
What does this MR do?
Refactor project routing:
- split on multiple files
- improve routing order
Why was this MR needed?
It makes it easier to maintain and modify project routing
What are the relevant issue numbers?
Extracted from https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7121