Create data provider interface and two implementations for installation user input.

This allows us to switch between the two via a simple command line option (--defaults) when running the installer. Mainly aimed at quick installation in a development environment.
Don't show input when asking for passwords.
Display all error messages and retry.