reland: chromeos: add SingleProcessMash mode

This makes Ash create an Env if passed SingleProcessMash. In addition this
makes all window creation go through a factory that ensures the right env is
supplied.

See https://docs.google.com/document/d/11ha_KioDdXe4iZS2AML1foKnCJlNKm7Q1hFr6VW8dV4/edit
for more details.

This also adds the feature to ui/base.

BUG=847992
TEST=covered by tests
TBR=jamescook@chromium.org

Change-Id: I446ba2dd7a05702cfca41a0e0d657d6606cc28e5
Reviewed-on: https://chromium-review.googlesource.com/1172054
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582454}
98 files changed