Fix cursor position after pasting a URL inside [url] tags.

Previously it would end up left of the ], but we want it on the right.
Move most of posts rendering into Objective-C.

* Fixing embedded Vimeo videos.
* Highlighting when the logged-in user is quoted.
* Cleaning up spoilers and editedby paragraphs.
* Linkifying images when "Show Images" setting is off.
* Initially hiding or showing avatars.

In addition,

* HTMLReader crash fixed in -[HTMLElement toggleClass:] when the element has no
  class attribute to begin with.
* Delete unused editDateFormat date formatter in AwfulPostViewModel.
* Move some Post.mustache logic into AwfulPostViewModel.

Finally,

* Viewing private messages is broken due to Post.mustache template changes and
  continued hackneyed use of Post.mustache template to render private messages.
* Highlighting the logged-in user's name in posts is still done in JavaScript
  with the DOM.
* Moved Post.mustache over to the Source/Posts folder.
* Once an image is revealed in the posts view, it is no longer hidden when
  setting "Show Images" to off. However, setting "Show Images" to on will still
  reveal all linkified images.
Fix rendering private messages.

Having a separate private message template and view model was long overdue.

Bonuses:

* No more "post actions" in private messages. Reply/forward are in a bar button
  item now, and "user profile" is just in the usual tap-the-username menu.
* Private message view better reacts to theme changes.
Documentation clarification.
Remove pointless highlightQuoteUsername property from AwfulPostsView.

Now handled entirely in the rendering.
Update HTMLReader.

Contains a fix that I'd applied to our local checkout.
Don't include pagenumber=1 in copied URLs.

Page one is the default, so tidy it up.

Bonus: fix some nearby formatting.
Handle URLs like showthread.php?action=showpost in-app.

Didn't know that kind of URL existed on the Forums.
Stop using abbreviated forum names.

Once upon a time, these were used for the back button in navigation items. Now
that all of our back buttons are empty, boring chevrons, there's no need for
the abbreviations.

Their only extant use was in setting the title of a forum's screen, which is
overwritten as soon as the forum refreshes. This was ugly and pointless, and
its removal led to the discovery that nothing uses the abbreviations anymore.
Tap (now device-specific) "Logged in as" to view profile.

* Remove "Logged in as" row from settings on iPhone. It's redundant with the
  avatar and username atop the basement.
* Tap "Logged in as" (iPad) or the header atop the basement (iPhone) to open
  the logged-in user's profile.
Fix ugliness after logging out of Instapaper or Pocket.

The table view would animate all weird, and the background color of the section
would be off.
Bring sanity to "mark as read up to post" aftermath.

Instead of re-rendering the whole posts screen whenever marking a thread as
read up to a post, don't. Just update the class attribute of the post elements.

Instead of re-rendering whenever the thread's seenPosts attribute changes, say
due to an automatic bookmarks refresh, don't. Only make visible changes in
response to "mark as read up to post" action.

Instead of showing a pointless HUD after marking a post as read, don't. Let the
change in post backgrounds speak for success.
Restore glorious advertising to the posts screen.

Been on the list for ages, just kept forgetting about it.
Preserve and restore approximate posts view scroll position.

This method is not particularly resilient to orientation changes (e.g. preserve
in landscape, restore in portrait) and gets less accurate the more images there
are above the current scroll position.