"won't compile" is confusing

We're not compiling the user's expression, we're evaluating it.
extensions before modules

there will soon be a dependency between those two.
parsed extensions from source, not from errors

the createModulesFiles was created before we decided to extract
extensions from the prelude. as a result, it had its own mechanism for
extracting extensions, by parsing error messages. we now use the same
extension list for both purposes.

To do this, I have split createExtensionsFiles into parseExtensions and
cacheExtensions, and similarly for createModulesFiles.