Update Crashlytics.
Bump deployment target to iOS 8.0.

* Bump version to 3.0.
* Don't use deprecated API.
* Delete pointless Info.plist keys.
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.
Extract view-controller-of-type hierarchy search to UIViewController category.
Switch to UISplitViewController on all devices.

* Delete home-baked AwfulSplitViewController.
* Use -showDetailViewController:sender:.
* Make sure "show sidebar" button appears after restoring from state.

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.
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.
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

As part of the approaching Swiftening, delete default class prefix from xcodeproj.
Move in-app action sheet over to a NIB, with Swift, and iOS 8-style presentation.
Simplify JavaScript calls for getting post/PM header bounding rects.

Everything's a popover now.
Factor out root view controller stack.

It's like a storyboard! A really shitty storyboard.
Rename view controllers whose class names appear in state preservation.

Eventually I want to give everything a consistent name without the Awful- prefix. For now, just do the class names whose changes break state restoration.
Delete unused views and view controller.
Switch to UIAlertController.
Stop pointlessly sending iOS 8 commits to Travis CI.
Lay out forum list using auto layout.
Delete pointless #import.
Move thread cell to a nib and always show full thread title.