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.