ModuleRegistry now caches entry points lookup

While profiling JJB with cPython with Wikimedia configuration files, the
top three offenders are:

 ncalls  tottime   cumtime  percall filename:lineno(function)
  60697    3.728    10.753    0.000 pkg_resources.py:471(iter_entry_points)
4903683    3.229     3.810    0.000 pkg_resources.py:2396(get_entry_map)
4936493    3.215     3.215    0.000 pkg_resources.py:494(__iter__)

By caching the iter_entry_points call in builder ModuleRegistry, the
execution time drops from 26s to 18s.

Can be further improved by caching the whole group on first lookup and
hold in the cache if entry point in a dict.

Change-Id: Iadc60a805f7690e8388d87f52760a9f6fcd2a53e
Merge "ModuleRegistry now caches entry points lookup"