Default theme configs in get_template_settings

Uses default theme config values in get_template_settings(). Also adds
a default value for fruitsalad's front_page_style.

Previously, the template settings were only those specified in the
theme_template_control Tag. Now, they also include the defaults of any
configs that may not be saved in that Tag.

When a new config is added to the repository, it will not be saved in
the Tag until the next time the theme is recompiled. Until that time,
the template variable will resolve to ''. For some settings, this can
be bad. For example, if front_page_style == '', then index.html will try
including a template whose name is ''. Since this template does not
exist, the include will fail, and the front page will be completely
blank until the next recompile. This commit avoids this problem by
providing for a safe default.
Fixes bug with getting host

When there is no request (such as when using the shell),
get_current_request() returns None, and trying to access request.META
fails. Work around this to get the host by instead using the SITE_INFO
setting when there is no current request.
Adds missing https protocol in link
Fixes bug with null form_class for default theme
Adds link to fix HTML validation
Removes extra </div> and fixes indentation
Replace protocol with relative reverse-url lookup
Fixes loginbox dropdown menu

Wraps the loginbox dropdown menu and toggle in a span.dropdown. Without
this, the menu was appearing at the bottom-left of the page instead of
at the toggle location.
Fixes other loginbox dropdown menu
Merge pull request #939 from learning-unlimited/more-theme-fixes

More theme fixes