Notification boxes don't handle users without fullnames.

The notification box that appears when a review request has been updated
names the user that made the latest change. We weren't handling the case
where that user doesn't have a fullname, and we'd display the empty string
for their name. Now, if we don't have the fullname, we display the username
instead.
Strip whitespace from STMP server names.

The STMP server configuration would fail if there was trailing whitespace on the
server name. This was a problem when copy/pasting text into the form.

Testing done:
Produced the bug with an smtp server "smtp.gmail.com     " and triggered an
email event (registration for new user). Log produced an error: "Unknown host".
Added the changes on the diff and tried again, the email is sent and the value
that is saved is stripped of the redudant spaces.

Reviewed at http://reviews.reviewboard.org/r/3759/
Fixes bug 2620.
Fix static media URLs when running the devel server with a SITE_ROOT.

The way that static media URLs ('/static/' and '/media/') were mapped when a
SITE_ROOT was defined was problematic, in that it was appending the SITE_ROOT
twice in the urlspec. The problem is that all the URLs were created with the
root prepended, but the way that settings.py defined the urls didn't have the
right distinctions between the names of the directories and the URL paths.

Testing done:
Tested that loading the dashboard included all static media with a SITE_ROOT of
both '/' and '/example/'.
Merge branch 'release-1.7.x'
Expand review when jumping to comment from issue table.

When clicking on an issue in the issue table, we bring the user to the
associated comment. This wasn't working if the comment was part of a review
that had been collapsed. Now we expand the appropriate review before sending
the user to the comment.

Fixes issue #3770.
Assert that a comment is passed to CommentDialogView.

At some point before committing my CommentDialogView change, logic
leading to an assertion moved, which we needed to ensure that there was
some comment passed to CommentDialogView. The assertion is now added to
CommentDialogView.create, which first references the comment.