Resolve the getCollection Promises once and store the result in a shared
`db` object which can get imported by all the call-sites.
The http server is starting only after a Promise of `waitForDb()`
resolves. This covers the app code and the acceptance tests:
REF: 586706a9439c3591fc9613dc877f055096ca073a
REF: d026569d2eb4123e30c771a55a001b42d5ade72f
Co-Authored-By: Eric Mc Sween <eric.mcsween@overleaf.com>
Co-Authored-By: Miguel Serrano <mserranom@gmail.com>
Co-Authored-By: Simon Detheridge <s@sd.ai>