Migrate `app/views/layouts/nav/breadcrumbs/_breadcrumbs.html.haml` to `GlBreadcrumb`

app/views/layouts/nav/breadcrumbs/_breadcrumbs.html.haml - that's the implementation most of the breadcrumbs in the app use.

Breadcrumbs are built dynamically and adding breadcrumb items is spread across the partials setting @breadcrumb_title/page_title or calling add_to_breadcrumbs/add_to_breadcrumb_dropdown. Also, partially some breadcrumbs logic is in app/helpers/page_layout_helper.rb.

👣 As a first step we can replace the markup in app/views/layouts/nav/breadcrumbs/_breadcrumbs.html.haml with the identical to that of the GlBreadcrumb. This first step is blocked until gitlab-ui#1079 (closed) is implemented as the markup will be updated

👣 next we add a container selector to the _breadcrumbs.html.haml to which the Vue component using GlBreadcrumb will be mounted. Thus will get instant rendering with haml template but later it could be replaced with the vue component. One downside is that we'd still have to support markup in _breadcrumbs.html.haml to mimic the one that will be implemented in its twin Vue component. Another issue might be with the screen readers - how will they react to that replacement of content.

👣 the most straightforward solution would be to replace all content in _breadcrumbs.html.haml with some container selector on which the new Vue implementation using GlBreadcrumb will be mounted. Thus we won't need to mirror haml template with the updates in Vue component and no issues with SRs. On the other side, the breadcrumbs won't be rendered instantly.

In case when haml version is updated, make sure to check app/assets/javascripts/breadcrumb.js. It adds interactivity to the haml implementation to toggle dropdown with hidden links.

In the scope of this issue, we need to figure out which path to take in this update. So all the steps are optional.

Example page that uses this implementation

Screenshot_2021-10-22_at_14.31.51

Also, we'll need to consider the outcome of this issue #338012 (closed) when doing the migration

Edited by Sam Beckham