Centralize plug-in configuration

Change all plug-ins to get their configuration from
/etc/openshift/plugins.d/*.

The motivation is that an administrator should not need to edit Ruby code
in order to configure the broker.  This is US2783 on Rally.

Currently, to set up or maintain a broker, an administrator must edit
development.rb, Gemfile, and .rb files under
/var/www/openshift/broker/config/environments/plugin-config/.  This
situation presents two problems:

• An administrator must deal with Ruby and Gemfile syntax to configure
   the broker.

• The modification that the administrator performs is performed on files
  that we developers may change.  Consequently, we have two choices:

   • Mark these files as config files in the RPM .spec, and expect
     administrators to import developers' changes on upgrades.

   • Don't mark these files as config files, which means that we will
     overwrite administrators' changes on upgrades.

   Currently, we take the latter option, but both options are bad.

The patch changes the Ruby code to read from configuration files under
/etc/openshift.  Following are the changes.

• The patch modifies the OpenShift::Config class.  This class was already
  used for reading /etc/openshift/node.conf on the node, and it reads
  configuration files of a line-based, key=value format.

• OpenShift::Config is changed from a singleton class to a regular class.
  Instead of OpenShift::Config.instance, users should now use
  OpenShift::Config.new.

  An .instance method is implemented that just calls .new, so
  OpenShift::Config behaves like a singleton (it just lies about its
  uniqueness) for legacy code that hasn't been changed to use .new.

• Because it is used on both the broker and the node now, OpenShift::Config
  is moved from openshift-origin-node to openshift-origin-common.

• A user of OpenShift::Config can now pass the path of an alternative
  configuration file to OpenShift::Config.new.  This path is generated
  as follows:

   • plug-ins use

       File.join(OpenShift::Config::PLUGINS_DIR, 'foo.conf')

     to get

       '/etc/openshift/plugins.d/foo.conf';

   • other code uses

       File.join(OpenShift::Config::CONF_DIR, 'foo.conf')

     to get

       '/etc/openshift/foo.conf';

   • and for backwards compatibility with current users, the default if no
     argument is passed to .new is to read from '/etc/openshift/node.conf'.

• A plug-in "foo" is automatically enabled when the file
   /etc/openshift/plugins.d/foo.conf is present.

• The "foo" plug-in uses the OpenShift::Config to read values from this
  'foo.conf' file; the plug-in does this work in a Rails initializer.
Cartridge Fix for BZ807443

In client_results, return env var names rather than values.
added tests and enabled ews
update
Merge pull request #635 from Miciah/etc-plugin-conf12

Merged by openshift-bot
Merge branch 'master' of https://github.com/openshift/origin-server
Fix for bug# 863973
Merge pull request #648 from jwhonce/dev/bz807443

Merged by openshift-bot
fix for mongo auth plugin spec file
Merge pull request #649 from abhgupta/abhgupta-dev

fixing mongo auth plugin spec file and express.conf setup
Automatic commit of package [openshift-origin-broker] release [0.6.14-1].
Automatic commit of package [rubygem-openshift-origin-auth-remote-user] release [0.0.9-1].
Automatic commit of package [rubygem-openshift-origin-auth-mongo] release [0.8.9-1].
Fix 'Obsoletes' for jbosseap6, port-proxy, mongodb-2.2, and diy
BZ 864519: Fix for git push failing for scalable apps w/ dbs.
Fix for Bug# 858203
Automatic commit of package [rubygem-openshift-origin-dns-bind] release [0.8.11-1].
BZ 865087: Add postgresql-contrib to cartridge.
Merge pull request #647 from jwhonce/master

Merged by openshift-bot
update