Changes theme name comment

Changes the theme name comment to be a Django template comment at the
bottom of the main.html template.

The theme name cannot be HTML-commented at the top of the main.html
template, because the XML/HTML declarations must be at the top of the
rendered HTML file. It cannot be HTML-commented at the bottom, because
this is outside all template blocks. And it cannot be Django
template-commented at the top, because {% extends elements/html %} must
be the first template tag.
Changes encoding to caps
Moves qsd media includes to elements/html

Now the QSD scripts and stylesheets will be loaded once on all pages.

CSS stylesheets should not be linked outside of the HTML head, and it is
unnecessary to include Javascript files more than once (which could
happen on pages with multiple inline QSDs). Furthermore, it is
negligibly more expensive to load the QSD media files on the few pages
that do not use QSD.
Adds required type attribute to all script tags

Also removes the deprecated language attribute.
Fixes HTML validation for tab_admin

id="tab_admin" is defined more than once, and is not used in any CSS or
JS. So this commit removes both definitions.

<div> tags are not allowed as children of <ul> tags. Moves the .admin,
.unmorph, and .hidden classes to their respective <li> tags, and removes
the enclosing <div> tags. This should cause no change in appearance or
functionality.
Conditionally renders web/navbar_left.html

If there are no navbar entries, web/navbar_left.html used to render as
an empty <ul> tag. This does not validate properly. This commit adds an
encloding Django template if block, and does not render the template if
navbar_list.entries has no elements.
Updates comment