Port `read_cross_project` ability from EE
This ports the changes from https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3709 to CE:
Main changes ported:
- Helper methods for rendering menus
- single instance finder methods on Finder classes
- Cross project restrictions, although they aren't used in CE.