Construct a configuration object.

A configuration object may be constructed with either
a path to a `keycloak.json` file (which defaults to
`$PWD/keycloak.json` if not present, or with a configuration
object akin to what parsing `keycloak.json` provides.

@param {String|Object} config Configuration path or details.

@constructor
function Config (config) {
  if (!config) {
    config = path.join(process.cwd(), 'keycloak.json');
  }

  if (typeof config === 'string') {
    this.loadConfiguration(config);
  } else {
    this.configure(config);
  }
}