Cleans up heightWithWidth:font: and spec.

* Removes `if` in specs which removes pending specs.
* Uses `respondsToSelector:` over explicitly checking iOS version.
* Only one path is run per iOS version (CI runs against both).
Weakly retain popover controller in spec helper.
Add preprocessor check to UIPopoverController+Spec.m to ensure ARC is enabled
Move NSURL -queryComponents to Core.
Add missing stubbed animation method.

Also backfills tests for `animateWithDuration:animations:` and removes
whitespace.
Refactor UITableViewCell tap method

* Uses (undocumented) Apple API that better matches what happens in real code.
Don't highlight/select cell if delegate says so.

* If `UITableViewDelegate` responds NO to `tableView:shouldHighlightRowAtIndexPath:`
  then don't select or deselect the cell.
* If it responds YES (or doesn't implement it), then continue selection.

Our understanding of Apple's undocumented call chain flow:
* Tap cell
* `unhighlightRowAtIndexPath:animated:` or
  `highlightRowAtIndexPath:animated:scrollPostion:`
* If delegate responds or returns YES to `tableView:shouldHighlightRowAtIndexPath:`, continue
* `_deselectRowAtIndexPath:animated:notifyDelegate:` or
  `_selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:`

The same thing happens for Storyboards.