Fix navbar height problem in fruitsalad theme

The navbar is missing some vertical spacing, which turns out to be because the line-height defined for the global li selector overrode the line-height for #submenu Fix this by also adding the rule under #submenu li.
Fixes virtualenv activation

/esp/dbmail_cron.py was not activating virtualenv, so recently it was
failing to run because could not import new dependencies that weren't
installed globally on the system (specifically, it couldn't import
markdown, which is imported by one of the modules that is imported by
the cache loader). Fixes this error by activating virtualenv in
dbmail_cron.

While doing this, I noticed that we were doing the activation wrong, in
two ways:

- The try/except block was originally designed to make it optional to
  use virtualenv. However, we are always going to be using virtualenv.
  So instead of helping us, the try/except class was masking our own
  bugs. This commit removes the try/except blocks.

- esp.wsgi was not using os.path.realpath(__file__), so it wasn't
  activating the correct file. We didn't notice this because of the
  try/except block, and probably because it doesn't matter for esp.wsgi.
  Fixes this bug.
Add migration to remove leading spaces from QSDs

Before 6f7d69e11136f0b769e47a9c468477d2c58c4cf1, using the inline QSD
editor would add extraneous leading spaces to the content. This is a
bug that has since been fixed, but the leading spaces are still
there. With the new version of Markdown, these leading spaces are
misinterpreted as denoting code blocks, which is undesirable.

Add a migration that, assuming that any leading space is
unintentional, removes it.
Also strip non-space leading whitespace
Adds docs for SR04
Rename doc files as .rst
Adds links to release documentation
Adds missing file
Adds more documentation links
Fixes generic templates documentation link
Moves release doc
Updates link
Fixes bug with virtualenv pre-activation

Travis uses its own virtualenv install, and has the activate script
located differently than us, and activates it before running manage.py.
This causes the check for our activate script to fail.

Fixes this problem by catching IOErrors, and not raising if the
VIRTUAL_ENV environmental variable has been defined, which would
indicate that the virtualenv has already been activated.
Merge pull request #964 from learning-unlimited/virtualenv-activate-fix

Fixes virtualenv activation
Merge pull request #967 from learning-unlimited/markdown

Add migration to remove leading spaces from QSDs
Revert "Fix navbar height problem in fruitsalad theme"

This reverts commit 7d503912cddb40d6d144b64ef1c0212652088995.
Adds documentation TOCs
Add line-height attribute to fruitsalad main.less
Merge branch 'main' into mit-theme-tweaks
Fixes documentation TOCs