Adds dependencies needed to setup new webserver

Some of these may be server-specific, and therefore maybe shouldn't be
committed. If that is the case, then remove them before merging this
commit into main.
Move production-specific Ubuntu packages to separate file
Update install instructions for base/prod packages

Also took out some Dropbox specific stuff now that we aren't
using Dropbox anymore.
Theme editor: Display advanced variables in sorted order
Treat variables*.less specially, not just variables.less

This allows one to define multiple files of variables for a theme.
Add optional variables to fruitsalad theme
Allow optional variables to be set in theme editor

In the fruitsalad theme, if N is the number of side tabs, there are really
3N colors to deal with because of the accents (the top tabs, and the left
edge of the side tabs).  The theme accepts N colors as advanced options in
the theme editor, and would calculate the "accent" colors by just
darkening the original by 20% or 30%.

In some cases this isn't enough (for example, if you want to have a black
side tab with a red accent).  To facilitate this, I made the extra 2N
colors "optional" variables.  Instead of displaying all of them on the
theme editor, there is a dropdown box that allows you to override
individual variables.
Adds auto-imports to shell_plus.

This uses django-extensions's SHELL_PLUS_POST_IMPORTS.  It also bumps
the django-extensions version to 1.2.5, since SHELL_PLUS_POST_IMPORTS
only does anything in >=1.2.3.  The only known backwards-incompatibility
is to UUIDField, which we do not use, so this should be safe.
Merge pull request #879 from learning-unlimited/mit-theme-tweaks

Color flexibility for fruitsalad theme
Adds missing </div> in render_qsd_inline.html

In render_qsd_inline.html, there was a missing </div> in the case where
no qsd object exists yet. This was causing rendering issues. When logged
out, the contents of the catalog would be swallowed by the .hidden class
of the textarea's enclosing div.

Should resolve Github Issue #888.
Merge pull request #889 from learning-unlimited/inline_qsd_fix

Adds missing </div> in render_qsd_inline.html
Merge pull request #864 from learning-unlimited/server-dependencies

Adds dependencies needed to setup new webserver
Adds some more imports, and fixes esp.program.modules.models import.
Add UserBitImplication import which was failing
Merge pull request #885 from learning-unlimited/shell-plus-imports

Adds auto-imports to shell_plus.
Merge branch 'main' into qsd_edit_by_url

Conflicts:
	esp/templates/inclusion/qsd/render_qsd_inline.html