Bump version to 3.0, deployment target to iOS 8.0, and temporarily silence deprecation warnings.
Switch to (horizontal, UIKit) tab bar controller on all devices.

This is how it was in Awful 1, and to be honest it's the superior interface.

The PM and Leper's Colony view controllers needed more helpful tab bar item titles, and the sidebar on iPad can shrink down now as there's no horizontal space needed for a tab bar.

Bump the interface version stored when preserving state, as they're no longer compatible (the class of the decoded object for the "root" identifier doesn't match). And while we're here, formalize and describe the interface versions.

Don't try to restore old, incompatible state. This means we can get rid of the otherwise pointless AwfulExpandingSplitViewController class, because we're not restoring state that involves it.
Mark off part of app delegate.
Delete pointless Info.plist keys.

I hope they're pointless...
Extract view-controller-of-type hierarchy search to UIViewController category.
Switch to UISplitViewController on all devices.

* Delete home-baked AwfulSplitViewController.
* Use -showDetailViewController:sender:.

As a bonus:

* Set light content status bar style on launch, and opt out of UIViewController-based status bar style. Unlike AwfulSplitViewController, UISplitViewController returns nil for
-childViewControllerForStatusBarStyle. We use light content everywhere anyway, so easy fix.
* Since we've already given up restoring state from Awful 2, let's rename all the root view controller restorationIdentifiers!
* Don't consider user interface idiom when restoring state. Xcode 6 no longer tries to mix and match idioms in the iOS Simulator.
Fix iOS 8 deprecations.
Reimplement jump to page view controller as Selectotron using iOS 8 presentation.

Bonus:
* Swift! So hello bridging header, relevant project settings, etc.
* Since Swift enums and C enums don't quite map perfectly, change some AwfulPostsViewController API to work in integers instead of AwfulThreadPage.
* Delete unused theme keys that I only just noticed when searching for "jumptopage".
* Normally I would split out Selectotron protocol implementations into extensions, but Xcode 6 Beta 6 does not make doing so an enjoyable experience.
Split out and collapse view controllers for the split view controller.

The default behaviour isn't want we want.
Rename +[AwfulSettings settings] to +sharedSettings for Swift availability.

Can't get at class methods named for a suffix of the class I guess.
Redo posts page settings view for iOS 8 presentation.
Converted AwfulDateFormatters to Swift