Rather than running all the facts for every invocation of
container-puppet.py, let's cache the facts for the entire container
config step. This is similar to what used to happen when we ran puppet
in a single instance for a given step. This improves the time it takes
puppet tp execute within the containers. When systems have large number
of interfaces, the fact generation for puppet can come to a crawl given
that puppet is not supposed to be invoked multiple times in parallel. By
pre-caching the facts, we eliminate the need for puppet to do the
network (and other fact) related lookups when running container
configuration generation.
Closes-Bug: #1835959
Change-Id: I6ee3849ff380304a184638493f33882b813bfdff