Separate loading and building the prompt.

This allows the prompt file and plugins to be loaded before the environment has been synchronized (in the slow code path). Once the environment has been synchronized, we then trigger all prompt and plugin callbacks.