Make Repository#has_visible_content more efficient

Merged Jacob Vosmaer requested to merge make-has-visible-commit-more-efficient into master

What does this MR do?

Add two more efficient implementations of Repository#has_visible_content?. The gitaly_has_local_branches feature flag toggles between the two.

Are there points in the code the reviewer needs to double check?

Why was this MR needed?

We have learned that this method is called a lot, and that it is slow on repositories with many branches.

Screenshots (if relevant)

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?

Edited by Jacob Vosmaer