Migrate to use subprojects.

Previously all Candlepin server source was under ${project_root}/src.

To look up the entire history of a file, the --follow option works for
both tig and git log.
Refactor buildfile to work with subprojects.

Additionally, move most custom functionality out into
plugins.
Add a common code sub-project.
Fix gettext task to run only on relevant projects.
Fix scripts dir for server build.
Move server license to correct location for build.
Move README to correct new location for rpm build.
Fix msgfmt task to not use task prereqs.
Get checkstyle working from the root directory.
Build .checkstyle files programmatically.

Eclipse projects are created in the subproject directory and are unaware
of any directories above them.  This creates an issue for Eclipse
Checkstyle when we want to reference configuration that is stored at the
top level of the entire source tree (such as checks.xml which is off the
project_conf directory).

One solution would be to create a symlink in every project that points
to the shared configuration directory.  This approach creates a lot of
redundancy and potential for people to forget to create the symlink
directory, etc.

The other approach is to generate the .checkstyle file programmatically
for each project when the Eclipse task is run.  The master .checkstyle
file uses an HTML entity to point to the project_conf directory and
we change the value of that entity when we generate the .checkstyle
files for the subprojects.
Refactor RSpec test task.

We can now run specific tests by appending items to the task name.  For
example, `buildr rspec:vcpu,consumer` will run any spec file that begins
with "vcpu" or "consumer".  We can exclude tests with a minus sign in
front of the identifier.  E.g. `buildr rspec:-vcpu` will run all spec
files that do not begin with "vcpu".

Additionally, we can provide either line numbers or test names to the
task.  For example, `buildr rspec:vcpu:62,41` will run the tests on line
62 and 41 of the vcpu spec file.  Likewise, `buildr
rspec:vcpu,consumer:consumer` will run all tests in the vcpu and
consumer specs that have the word "consumer" in the test name.

The general syntax is

rspec:test_name[,test_name ...][:signifier[,signifier ...]]

where the signifier is either a string or an integer.

Please note that if you need to use a phrase to single out a test, you
will need to quote the task name: `buildr "rspec:vcpu:should be valid"`.
Also note that any phrase or line number you specify will be applied to
*all* tests.  So `buildr "rspec:vcpu,consumer:62" will only run tests
that begin on line 62 in either the vcpu or consumer specs.  This is a
limitation of rspec itself.
Add warning comment to generated .checkstyle files.
Add task to generate a POM file for an artifact.
Merge branch 'master' into awood/subprojects
Merge pull request #635 from candlepin/awood/subprojects

Awood/subprojects
Add readonly flag to subscription adapter

This provides a way to avoid certain operations if they're always
going to no-op