Refactor GlobalScreenshot

Pull apart into View vs Controller model, to separate views/
animations from state handling.

This is a large change, but not as large as it looks since
most sections are copied from GlobalScreenshot into either
ScreenshotView or ScreenshotController.

Roughly speaking, ScreenshotController handles the overall
screenshot initiation, flow, and callbacks, while
ScreenshotView handles the subviews and constructs the
animations.

Test: manual

Change-Id: Ic3238571ac2d7aa749eff078c2297f2b6ed06b78
15 files changed