Implement cross-project Markdown references

Enable linking to commits, merge requests, and issues in other projects
by prepending a namespaced project path to the reference.
Fix ReferenceExtractor

The cross-project reference feature broke the ReferenceExtractor class;
this fixes it.
Track projects in ReferenceExtractor

Store both the project and identifier of extracted references.  This
prevents `ReferenceExtractor` from returning objects in the wrong
project for cross-project references.
Make Mentionables work for cross-project refs

Add a note to merge requests and issues when they're mentioned by a
merge request, issue, or commit in another project.
Fix fa-download icon
Fix external issue links

Display the project path in links to issues in other projects that use
an external issue tracker.
Fix external commit links

Display the '@' character for links to commits in other projects.
Fix cross-project reference test

Test for the correct link text in cross-project references.
Merge pull request #7960 from Soullivaneuh/fa-fix

Fix fa-download icon
Make Spinach test names consistent

- do not add Feature to feature titles
- titleize feature titles
- put steps on the same path as .feature files
- make feature titles match their path
Merge pull request #7933 from mr-vinn/cross-project-markdown

Implement cross-project Markdown references
Merge pull request #7940 from cirosantilli/uniform-spinach-names

Make Spinach test names consistent [failure unrelated]
Add task lists to issues and merge requests

Make the Markdown parser recognize "[x]" or "[ ]" at the beginning of a
list item and turn it into a checkbox input.  Users who can modify the
issue or MR can toggle the checkboxes directly or edit the Markdown to
manage the tasks.  Task status is also displayed in the MR and issue
lists.
Add specs for tasks

Add tests for the new task list functionality in the Markdown parser and
in issues and merge requests.
Update docs for task lists