Validate and install extensions (final)

This supersedes #3137, and should contain just the changes for the installer pull request separate from the node modules in #3156.