Fix unit tests when running on iOS 8

- Forcing a layout pass for a root view apparently does not cause its subviews to also undergo a layout pass on iOS 8.0/8.1 (this is a change from iOS 6/7). Change the forced layout pass to be recursive.
- The view controller asserts when attempting to install constraints to its layout guides when it does not descend from a window on iOS 8. Create a window and set the root view controller as required.