Move AwfulBan over to Swift as Punishment.

The last model written in Objective-C has fallen.

Bonus: De-Awful-prefix LepersColonyPageScraper.
Nobody else cares about this NSManagedObjectContext category, just move it to where it's used.

Just cleaning out the Models group.
Stop un-bookmarking threads just because they're beyond page 1 of bookmarks.

Thread.bookmarked used to fulfill the functions of two attributes, and they've now been properly separated:

* "Is this thread bookmarked?", now fulfilled by Thread.bookmarked.
* "Should this thread appear in the list of bookmarked threads right now?", now fulfilled by Thread.bookmarkListPage.
Swiften and tidy up AwfulManagedObject.

* DRY up AwfulObjectKey and related methods on AwfulManagedObject.
* More concise fetch helpers in tests.
* Reduce use of fetch/insert conveniences outside of model classes.
Save thread list's filter tag using objectKey.

Forgot this one when moving everything else over.
Finish moving off of HTMLNode+CachedSelector.

Had already moved off of it somewhat when moving scraping tests to Swift. This removes the rest of it.

The speedup is minimal. If it pops back up to the top of Instruments, I'm happy to come back and reconsider.
Save the managed object context once after state restoration, instead of several times while restoring each view controller.

At the time, I hadn't noticed the application:didDecodeRestorableStateWithCoder: method.