Cache model lists in OpenModelDialog

This improves performance by a **great** deal. Every call to
list_models() of the underlying locator is noticeable. Due to the
OnUpdate calls, there are several hundreds of these in a typical dialog
session.