Branch Rules needs to take custom role abilities into account

Related to Spike: Investigate dependency between Custom ro... (#576364 - closed)

While investigating why custom roles weren't working it was noted that custom roles for protected branches was added after branch rules was implemented. The team that added these permissions was likely unaware of the branch rules feature and didn't add the new policy abilities to the branch rules policy.

To fix this we need to update the project policy so that we also enable ..._branch_rule when enabling these custom role abilities for protected branches.

We will also need to use more abilities to hide sections within branch rules that cannot be edited by these custom roles. For example a custom role that enables editing protected branches should not be able to edit the approval rules. The approval rules should be hidden in both the overview and details page.

To do this we need to pass the specific abilities to Vue through the elements dataset in the view file.

After this issue is complete frontend will need to modify the Vue components to use these new abilities to hide the relevant sections.