Always link to the current documentation URL.

We've always had to manually update the various URLs to the user manual,
and we've never been very consistent about doing that. However, this is
pretty easy to compute, so there's not much reason for us to have to
change anything.

There's now a new get_manual_url() function that's used to populate the
URL for the web UI and for rb-site. This will use a versioned manual if
it's a released build tagged 'final', or the 'dev' manual otherwise.

Reviewed at https://reviews.reviewboard.org/r/5854/
Escape '_' in all parts of a string when escaping for Markdown.

While our Markdown formatting through marked.js technically allows '_'
to be unescaped in the middle of words without problems, it breaks
down in practice. There are bugs in marked.js that can cause '_' in
different parts of a string to be turend into emphasis.

Until that's fixed, or we move to server-side Markdown rendering, we'll
need to disable the escaping of '_' within words in order to prevent
these problems.

Reviewed at https://reviews.reviewboard.org/r/5857/
Use "pre"-mode whitespace rules for <p> tags in Markdown.

Free-form text (<p> tags) are now set to not strip whitespace, causing
them to act just like a <pre> tag. This allows things like indentation
to remain (which Review Bot currently sets).

This is how it used to be, but that was changed in one of the betas to
work around some issues. However, that change was made to *all*
elements, and I don't believe the original issue was with paragraph
text.

Reviewed at https://reviews.reviewboard.org/r/5858/
Require Django Evolution 0.7.1 or higher.

This release fixes issues that some users encountered when upgrading
from old Review Board databases on MySQL.
Remove CSS files we no longer use.

We have some cruft in our css directory. In particular, docs.css and
iphone.css, neither of which have been used for a very, very long time.
This change just gets rid of them.

Reviewed at https://reviews.reviewboard.org/r/5860/
Return an informative error message when a review is posted with a duplicate commit id.

The reproduction steps described in bug 3328 could not be reproduced. When
following the steps, I would receive a HTTP 500 error when making the second
post. This is a result of Django not being used previously to validate the
data. Instead it was being left to the database, which is checked and handled
differently depending on which database is used and it's configuration. To fix
this creation was changed to instantiation to prevent partial saving, a
validation step was added prior to saving, a new webapi error was added, and
the error code was documented in the manual.

Testing Done:
I tested to ensure when making the second rbt post that the error was caught
and an informative error message was displayed, rather than an HTTP 500 error.
I also checked after the failure to ensure that a partial review object was not
created. I also tested to ensure that posts could still be created if they had
a unique commit id.

Bugs closed: 3329

Reviewed at https://reviews.reviewboard.org/r/5815/