Add a minimum height to the actions bar for a review request.

When not logged in, and with no actions on the actions bar, the bar
would have a height of about 1px, and would look weird and slightly
broken. We now give it a minimum height that corresponds well enough to
what we have when there's content.
Make UserSession always available, and move global variables to it.

UserSession is now instantiated whether or not the user is
authenticated. An 'authenticated' attribute is set to indicate the
authentication state.

Along with this, some global variables used for user state (gUserName,
gUserFullName, gUserURL, and gOpenAnIssue) are now part of the
UserSession.

This required some updates to various unit tests in order to not trip
the asserts for an existing UserSession.

A side benefit to this work is that unit tests can now be run reliably
regardless of whether the tester is logged in (as some code would check
JavaScript variables that weren't set for anonymous users).
Prevent new resource instances from readying the parentObject.

When we destroyed a new object, we checked if the parentObject was
ready. This wasn't really necessary, since we didn't have a URL we
needed to destroy or anything. Our destruction was internal only.

By removing the parentObject.ready call in this case, we get faster
destruction for unsaved/unloaded objects, and we also prevent a problem
where we may not be in a position to even fetch the parent object.

The case I refer to is the destruction of draft comments on draft
reviews, when not logged in. I have a fix I'll put out after this, which
prevents trying to get the draft review if not logged in. In this case,
we'd error out, which would break the ready() call. We don't even want
to hit that case for new objects, though. New objects should be
destroyable without the parent object being fetchable.

As part of this, I've standardized the call to the parent destroy
function and the success callback to it, so that we make sure to reset
the state in all cases.
Fix the comment dialog when not logged in.

The comment dialog has been broken for a little while when not logged
in.

We were attempting to fetch the review draft when unauthenticated. This
triggered the browser's HTTP Auth login dialog, which is not what we
wanted. Instead, we want to see that we're not authenticated and error
out.

This combined with my object destruction and UserSession changes fixes
breakages for logged out users trying to make comments. We cleanly tell
the user now that they need to log in, without popping up any broken
login dialogs.

Unit tests were added here to ensure that that works. Part of this
involves moving our comment dialog template inline to give it access to
our UserSession, so we can test against the different states.