SSP-2007 Fix elective and color store load timing for MAP

The originally reported issue was that elective colors wouldn't
render correctly for the very first MAP rendered in a given
client-side application instance.

This was caused by a timing problem. SemesterPanel's need
the elective and color stores to be fully loaded to support
its renderer functions. Initialization of these stores was
happening somewhat by accident, though, by virtue of their
injection into SemesterPanelViewController, which, because of
the way the stores were coded, just happened to result in a
load() when injected for the first time. But that load() is,
of course, asynchronous. So SemesterPanels would start to render
before the store/s had completed loading.

The workaround in this patch is to make sure those stores
are initialized before creating/rendering any SemesterPanels.
This is complicated by the fact that that loading is async and
most of the MAP rendering code assumes a more or less synchronous
process.

Once that was working, the "load on instantiation" code had to
be removed from the relevant store implementations, else we'd
be loading these stores several times over per MAP render. This
broke the elective admin UI, which assumed the colors store
would be fully loaded just by virtue of referencing it.

The workaround for the admin problem was to add a config option
to our AdminTreeMenu (interfaceOptions.storeDependencies), with
which we can specify the set of stores that should be initialized
along with the "main" admin item store.

I'm concerned the admin piece might still have some timing issues
because the "main" admin item store is bound to the view before
being loaded. So if it ends up loading before its dependencies
load, the view might still end up corrupted. But so far I've not
actually seen this happen locally.