Implement lazy initialization for VrShellDelegate

This allows VrShellDelegate to be created when it's needed, removing memory overhead for VR support when VR is not used.

This CL also allows for VrShellDelegate to be destroyed once it's no longer needed as well, but that will be implemented in a follow up CL.

Also also, this paves the way for allowing VrShellDelegate to attach to arbitrary ChromeActivities in the future (though for now only CTA is supported)

Also also also, this fixes VrShellDelegate being accessible from CCT (and webview?) so that they now correctly return no displays available.

BUG=655297, 689293

Review-Url: https://codereview.chromium.org/2727873002
Cr-Commit-Position: refs/heads/master@{#454474}
17 files changed