Fix crash showing certain user profiles.

If someone had a homepage in their profile, and private messages can't happen,
-anyContactInfo would crash sending -length to an NSURL.
Don't crash scraping ignored posts for the first time.

The goal was to avoid overwriting a revealed post's contents with the generic
"click to reveal post" link.
Fix finding users in database with previously unknown user IDs.

The problem with AwfulUser is that we sometimes only know either a user's ID or
their username. To handle this situation, we use
+firstOrNewUserWithUserID:username:... which is meant to find any known users
and reconcile any missing information. Unfortunately it was broken in the following scenario:

1. Insert a new user knowing only their username. For example, this happens
   when scraping a post written by an ignored user.
2. Profile the user. Now we know both the user's ID and username. However,
   +firstOrNewUserWithUserID:username: will skip the search by username and
   never find the user we inserted in step 1. A new user is inserted.

Everything falls apart thereafter because the bulk importers in the posts page
scraper and thread list scraper work correctly, trying to update existing
ID-less AwfulUsers. Which AwfulUser we get is undefined.

The fix is to always look for any users by ID and by username if we're given
both.
Add "Open [in Awful Browser]" option when tapping a homepage in a user profile.

Bonus: DRY up opening an Awful Browser.
Only add "Close" or "Done" button to presented views if they're alone in their navigation controllers.

Sometimes presented views get other views pushed into their navigation
controller, and we don't want to remove the back button.
Resolve tapped link URLs within AwfulPostsView.
Formatting and redundancy elimination.
Add setter for -[UIPasteboard awful_URL] and consistently use the getter.
Add and clarify instructions for adding thread tags.
New design for secondary thread tags
Fix missing background image in basement view
Don't crash when we find a missing secondary thread tag
Avoid dismissing compose view on iPad when choosing thread tags
Allow styling of individual poster's usernames

The forums have a userid-XXXXX class on each post to accomplish this,
so let’s do the same thing.
Fix Peta's "3D" username in dark mode
DRY up passing element bounding rects from UIWebView back to Objective-C.

* Centralize string parsing and offsetting in UIWebView method.
* Centralize element bounding rect formatting in util.js (né spoiler.js).
Don't ask to open URL copied from a PM.
Rename "Rendering" group to "Web View Junk".
Document AwfulActionSheet.
DRY up action sheet for long-pressing a URL.