Implemented two-stage app-cache population.

First stage imports app modules. It doesn't catch import errors. This
matches the previous behavior and keeps the code simple.

Second stage import models modules. It catches import errors and retries
them after walking through the entire list once. This matches the
previous behavior and seems useful.

populate_models() is intended to be equivalent to populate(). It isn't
wired yet. That is coming in the next commit.
Terminated AppCache._populate with extreme prejudice.

It was called _populate before I renamed it to populate. Since it has
been superseded by populate_models, there's no reason to keep it.