We split the groups by uuid cache into two caches:
1. "groups_byuuid" stays the same. Caches by uuid without reading the
SHA-1 of the ref from NoteDb.
2. "groups_byuuid_persisted" is the persistent variant of the above
cache. This is used in the loader of "groups_byuuid" and it has the
SHA-1 of the ref in the key.
The new setup eases cold start times. The split is useful to allow
accessing groups without loading the SHA-1 for each lookup.
As a follow-up, we can also implement another method that gets multiple
groups at the same time. This will be more efficient given that we will
only need to access NoteDb once instead of once per group. This will be
needed when getting the subgroups.
While at it, we needed to add a new method that loads a group (to load
it for a specific revision) so we also add a few @Nullable for other
methods (since the sha-1 can be null).
Change-Id: Ia52b3a3edcae0589c785e9d093776ec26dc324ca