This allows us to check inclusion for the *_exists? methods without
downloading the full list of branch names, which is over 100KiB in size
for gitlab-ce at the moment.
And reuse `Gitlab::Utils::StrongMemoize`.
There is a subtle behavior change required to reuse StrongMemoize in
this case. The early fallback check now occurs *before* reading the
memoized value instead of after.
I think this is fine since a memoized value should only exist if
`exists?` is also already memoized as `true`.