Leave slug empty until we are sure media processing was successful.

Patch submitted by LotusEcho
slugs are now generated during processing
Added comment preview functionality to user pages. It works by passing the comment's value as a JSON string to a new handler that lives at /ajax/comment/preview. The query string is decoded, unquoted, and has its leading and trailing quotes removed to match the input that cleaned_markdown_conversion expects.

It does this in real time with a 500ms lag by using a timer. Initially I tried the onChange handler but you need to lose focus for that to process. The javascript timer is only invoked if the add comment button is pressed. A request is only sent if the comment box is not empty and the current value is not the same as the last value.
Added i18n to my javascript changes as per trac #417
Changed the target of the markdown links for opening in a new tab as suggested by joar.
Changed how the comment was encoded/read.
Fixed CSRF + Post with comment preview.
Merged with latest master
change interval to 1000ms
Render 404 if not ajax request