Add docker containers for running spec and unit tests.

This will hopefully give us a solid way to run jenkins tests without a lot of
environment overhead, the container takes care of all the ruby/devel setup, and
a completely clean environment for every run. We can also now run multiple spec
tests jobs on one host system as there's no more fighting over a specific host
port.

Includes a candlepin checkout at /candlepin with all current ruby and java deps
installed to dramatically cut down on the time and bandwidth. Everything should
get updated when we run so changing deps should not be a problem, but it may be
a good idea to rebuild these from time to time. (script included see
rebuild.sh)

You can mount your host's dev checkout as a volume at /candlepin-dev when you
run if you'd like to run tests against code you're working on. I hope to add
oracle / mysql containers soon, which would mean you don't necessarily need to
set all of these up on your main system anymore.

candlepin-base container just sets up the development environment without a
database and is capable of running the unit tests successfully. It uses
supervisor to manage postgres and tomcat services as systemd is not container
friendly yet.

candlepin-postgresql layers on top of base and adds in postgresql setup,
default command runs the rspec tests.  A slightly modified version of
postgresql-setup is included as the stock one in F20 tries to read values from
systemd config which we don't have here.

Option included to open a shell once tests are complete, or you could skip
the tests to just get a shell into the dev environment you setup.
Enhance docker test script to checkout arbitrary git refs.
Symlink keystore for tomcat more reliably.

Previously we would only do this if forcecert was 1, however on a first run for
a devel system, forcecert may not necessarily be set, but certs still get
generated because they do not yet exist. The keystore would not be linked and
tomcat would not run.
How about we actually run the rspec tests?
Copy server logs out after rspec if artifacts volume exists.
Add sshd, remove tomcat wrapper in Docker test containers.
Better postgresql auth setup.
Trim modified postgresql-setup script.
Append RSPEC_OPTS env variable to rspec options.

RSPEC_OPTS="--no-color" buildr spec, for example.
Init code refactor more like Candlepin.

Seperate Guice initialization into 2 classes:

GutterballModule - to put all of the application specific classes, this extends
AbstractModule.

GutterballServletModule - only binds webapp items like servlets and filters.
Removed the Configuration provider as the Guice code comment states you really
shouldn't be using getServletContext(). And getServletContext is only usable if
you extend GuiceServletContextListener (see note on that later).

EventReceiver - added logging

GutterballGuiceResteasyBootstrap - We need to copy a bunch of methods from
RestEasy because they are private in 2.x. In 3.0 they were made protected, so
this class mimics what 3.0 does. That way when we do eventually switch we can
remove this class and simply extend their provided listener. It initializes the
guice modules, stage, and binds the resources to the ResteasyProviderFactory in
processInjector.

GutterballContextListener - Was GutterballServletContextListener, but to be
consistent with Candlepin's CandlepinContextListener it was renamed. It also now
extends GutterballGuiceResteasyBootstrap. It sets up our injector,
servletcontext, and reads in the configuration. The Configuration is bound to
the injector to an instance instead of from the servlet context.

web.xml - is simplified and inline with what we do in Candlepin. We only include
a single GutterballContextListener. The rest is configured in code from the
Bootstrap class.
Oracle docker container almost functional.
Oracle launcher script for within containers.
Move Oracle container scripts to internal dl location.
Add shebang to Oracle launch script and run Oracle as root.
Set up shell to run profile and rc files.

Also set SUPERVISOR=1 in a .candlepinrc file as this setting
will always be necessary when running in Docker.
Run Oracle for Docker tests.

- Place JDBC driver in JAR repo
- Change the Oracle start script to not daemonize
- Change the Oracle http port to something not used by Tomcat.
Set Oracle mode by default on Oracle containers.
remove the unneeded swallowOutput config option
Replace shortened url with full url.

I had to wrap the url to keep checkstyle happy. Unfortunately, this involves
having to copy and paste 2 lines to get the real url. But at least it is
visible.
Merge pull request #654 from candlepin/programmatic_config

Init code refactor more like Candlepin.