Ensure db user exists before validating db connection

The validate_db_connection class takes a user to connect as, but if we're
using the progresql::server::db defined type then the user might not be
created yet, and might not have any permissions granted yet.  This patch
uses a collector to ensure that the that the user and grants are active
before validating.