This commit improves diagnostic labels to mention which field a borrow overlaps with and adds a note explaining that the fields overlap.
This commit adds justifications to error messages for conflicting borrows of union fields. Where previously an error message would say ``cannot borrow `u.b` as mutable..``, it now says ``cannot borrow `u` (via `u.b`) as mutable..``.