Move Demo Resources logic to new class

Creates the DemoResources class, removing the nitty-gritty details of
component loading from the global DemoSession instance.

This will make it simpler to update the offline-enrolled mode to use the
offline version of the Demo Mode Resources component. It will also allow
us to check for the existence of Demo Mode resources without starting a
a DemoSession, eg from OOBE.

DemoResources avoids using the term "offline resources" except in the
context of the preinstalled resources used in offline-enrolled Demo
Mode. General Demo Mode resources will just be called "Demo Resources"
or similar.

A follow-up change will update calls to
DemoSession::EnsureOfflineResourcesLoaded() to instead call a similar
function on DemoResources.

Bug: 904641
Change-Id: Ia931721511fac4efb9e796052bd760a87c952be9
Reviewed-on: https://chromium-review.googlesource.com/c/1333112
Commit-Queue: Michael Giuffrida <michaelpg@chromium.org>
Reviewed-by: Alexander Alekseev <alemate@chromium.org>
Reviewed-by: Wenzhao (Colin) Zang <wzang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608213}
13 files changed