Backend: Suggested Groups by interest tags

<!---
Please read this!

The Definition of Ready (DoR) can be found at https://developers.minds.com/docs/handbook/how-we-work/#definition-of-ready-dor

Before opening a new issue, make sure to search for keywords in the issues
filtered by the "Type::Feature" label and verify the feature you're about to submit isn't a duplicate.
--->

## Goal

Populate suggested groups for new users who've only told us what their interests are, to create social connections more quickly.

## What needs to be done

Backend support for returning suggested Groups based on a user's interest tags.

Recommendations are hard-coded in a table.

Table can be periodically updated manually.

----

| Tag                    | Groups                                                                                            |
|------------------------|---------------------------------------------------------------------------------------------------|
| (no tags)              | 1476480270281478151,902525707628482560,1201737076455972864,619105339211526145,1359550877425209362 |
| minds                  | 1476480270281478151,902525707628482560,1201737076455972864,619105339211526145,1359550877425209362 |
| health                 | 1165910758624018432,1442488853934903303,463080754876788745,1156627581123850240                    |
| education              | 1192069283972800512                                                                               |
| business               | 1442500376623321092,1294668597443956756,1169908341748543488                                       |
| anime                  | 619603101665472527,1198671029791182848,1470670345177403405,619166706241118208,985393209730748416  |
| animals                | 890712988336566272,459579389693136899,1085916687153975296,1280768320475238409                     |
| politics               | 1191117399856676864,908355614612557824,1442345651319869454,462938545003171848,1442344419238875151 |
| gaming                 | 838033865292578816,1444328500726075396,567372953759522816,566889350457991168,1368218985123811329  |
| erotica                | 616348850147303443,874510275275112448,862387013408485376,1265769706291421184                      |
| technology             | 478942975620034560,1174494235394486272,1447311275527770123,765195092406312960                     |
| art                    | 1201737076455972864,1476480270281478151,915107366376468480,1226428635092373504,829784022379470848 |
| music                  | 567523173034110976,615668225862021135,615668418976165897,1442346380214407171,1293091354636718089  |
| photography            | 1280768320475238409,1313528922637340684,1085848479181799424,904355514792894464                    |
| nature                 | 1359550877425209362,890712988336566272,1410285839044317188,574262456742846476,1442345651319869454 |
| crypto                 | 704263442202107922,1222038945769963520                                                            |
| news                   | 1177299407948414976,569270912981934080,672013690966384652,704263442202107922                      |
| travel                 | 458337393490006016,1300087343142670356                                                            |
| outdoors               | 574262456742846476,1410285839044317188,890712988336566272,719623398866558976,829784022379470848   |
| sports                 | 1442347541273251843,719623398866558976                                                            |
| comedy                 | 1110363744251887616,774067027907190789                                                            |
| fashion                | 984703890463858688,619166706241118208                                                             |
| memes                  | 1230371709496590336,844220536770330624,1324946905297326081,899830471989624832,1221126036269957120 |
| spirituality           | 611684291079843859,1165910758624018432,731747360685694981,774004256528146437                      |
| blog                   | 1476480270281478151,902525707628482560                                                            |
| myphoto                | 1280768320475238409,1313528922637340684,1085848479181799424,904355514792894464                    |
| videos                 | 874674384950874112,902525707628482560,1481847552344068112                                         |
| journalism             | 1177299407948414976,569270912981934080,672013690966384652,704263442202107922                      |
| blockchain             | 704263442202107922,1222038945769963520                                                            |
| food                   | 1410285839044317188,1305840482831568912                                                           |
| nutrition              | 1410285839044317188,1305840482831568912                                                           |
| film                   | 1443120082057170957                                                                               |
| poetry                 | 570312857774727174                                                                                |
| healthcare             | 1165910758624018432,1442488853934903303,463080754876788745,1156627581123850240                    |
| ai                     | 478942975620034560,1174494235394486272,1447311275527770123,765195092406312960                     |
| digitalmarketing       | 1442500376623321092,1294668597443956756,1169908341748543488                                       |
| usa                    | 1191117399856676864,738821645120053248,934784881483403264,1156627581123850240                     |
| russia                 | 1191117399856676864,738821645120053248,934784881483403264,1156627581123850240                     |
| freedom                | 1191117399856676864,738821645120053248,934784881483403264,1156627581123850240                     |
| biden                  | 1191117399856676864,738821645120053248,934784881483403264,1156627581123850240                     |
| science                | 1442347296564973579,1170204930618699776,619105339211526145                                        |
| realestate             | 1442500376623321092,1294668597443956756,1169908341748543488                                       |
| seo                    | 1442500376623321092,1294668597443956756,1169908341748543488                                       |
| marketing              | 1442500376623321092,1294668597443956756,1169908341748543488                                       |
| ukraine                | 1191117399856676864,738821645120053248,934784881483403264,1156627581123850240                     |
| trump                  | 1191117399856676864,738821645120053248,934784881483403264,1156627581123850240                     |
| china                  | 1191117399856676864,738821645120053248,934784881483403264,1156627581123850240                     |
| covid                  | 1165910758624018432,1442488853934903303,463080754876788745,1156627581123850240                    |
| bitcoin                | 704263442202107922,1222038945769963520                                                            |
| truth                  | 1191117399856676864,738821645120053248,934784881483403264,1156627581123850240                     |
| finance                | 1442500376623321092,1294668597443956756,1169908341748543488                                       |
| canada                 | 462937526768775172                                                                                |
| digitalmarketingagency | 1442500376623321092,1294668597443956756,1169908341748543488                                       |
| nsfw                   | 874510275275112448,616348850147303443,824279188585496576,862387013408485376,1265769706291421184   |
| videogames             | 838033865292578816,1444328500726075396,567372953759522816,566889350457991168,1368218985123811329  |
| humor                  | 1110363744251887616,774067027907190789                                                            |
| beauty                 | 984703890463858688,619166706241118208                                                             |
| fitness                | 1165910758624018432,1442488853934903303,463080754876788745,1156627581123850240                    |
| broadband              | 478942975620034560,1174494235394486272,1447311275527770123,765195092406312960                     |
| porn                   | 874510275275112448,616348850147303443,824279188585496576,862387013408485376,1265769706291421184   |
| philosophy             | 463046640219992067                                                                                |
| internet               | 1476480270281478151,902525707628482560,1201737076455972864,619105339211526145,1359550877425209362 |
| vaccines               | 1156627581123850240                                                                               |
| guns                   | 1396522777090986003,754406954364837888,991752114147057664,1421393596950515729,985393209730748416  |
| comics                 | 793262660220469248                                                                                |
| cars                   | 1148770823156862976,765195092406312960,832359637414465536                                         |
| pets                   | 459579389693136899,1085916687153975296,1227993296827064320                                        |
| gardening              | 1410285839044317188,622658682039054354,464053275172286482                                         |
| controversialnews      | 1191117399856676864,738821645120053248,934784881483403264,1156627581123850240                     ||

----

This support ("new recommendations") should augment -- not replace -- the existing Groups recommendation logic ("old recommendations").

Possible logic, want dev feedback on feasibility:

- If "old recommendations" are empty, return "new recommendations"
- If "new recommendations" are empty, return "old recommendations"
- Always return "new recommendations" + "old recommendations"

## QA

<!---
Consideration is given to how the issue will be demoed and tested prior to being deployed
--->


## UX/Design

<!---
Sufficient wireframes have been presented and understood by the development team. Full mockups are not required and re-usable components are encouraged.
--->

## Mobile

<!---
Does a mobile card need to be created? Any notes for mobile?
--->

- [ ] Is Mobile Required?

## Personas

<!---
Who does this user impact and why (optional)
--->


## Experiments

<!---
Experiments are not required, but it should be made clear if one is expected. If experiments are required, the hypothesis should be outlined.
--->


## Acceptance Criteria

<!--
Everyone should be able to understand what is expected to be delivered
--->

- [x] Create a new Vitess table that has a map of groups to respective tags (table above)
- [x] The table should have an entity 'type' column for future use with users
- [x] Shuffle the results back to the users

## Definition of Ready Checklist

- [ ] Definition Of Done (DoD)
- [ ] Acceptance criteria
- [ ] Weighted
- [ ] QA
- [ ] UX/Design
- [ ] Personas
- [ ] Experiments

Story points: 3.0