Add a type indicator to Pool.

When debugging we're currently having to figure out what type of pool
we're looking at based on implied attribute rules. Add a db transient
field to the Pool which will help us clarify what type of pool we're
looking at. Third party callers can use this to adjust behaviour in
displaying pools as necessary.

Also added a wrapper to see if a pool is stacked, and get it's stack ID,
as this is a fairly common check as well.

Ultimately it would be nice to have this saved in the db, but this
requires a more complicated rollout as there is a progrematic upgrade
involved. For now, it will just be transient.
support default quantity for future pools
Merge pull request #396 from candlepin/dgoodwin/pool-typing

Add a type indicator to Pool.
Move consumer atom feed to correct API location.

When fetching info specific to a consumer our preferred API layout is to
go to /consumers/{uuid}.

This patch moves /owners/{key}/consumers/{uuid}/atom to
/consumers/{uuid}/atom.

This coincides also with /consumers/{uuid}/events which is just a
different representation of the same data.

I have verified the old API call is used in neither SAM, Satellite,
nor hosted environments.

Updated and expanded on some related spec tests.
Improve spec test for running in parallel.
Merge pull request #397 from candlepin/ckozak/future_attach_default

support default quantity for future pools
Improve the concurrency-test.rb script.

Stop registering in the threads and just bind there to improve the
timing on when the bind requests come in. Use just one consumer on a
pool with multi-entitlement, as we really just want to check access to
the pool.
Use XPath to verify event atom feed looks correct.
Merge pull request #399 from candlepin/dgoodwin/concurrency-test-improvements

Improve the concurrency-test.rb script.
Don't translate log messages.
Extract latest strings.
Updated translations.
Automatic commit of package [candlepin] release [0.8.29-1].
1011257: Throw Conflict exception on StaleStateException

Wrap stale edits in a custom ConcurrentModificationException so that a
clients recieve a 409 with a more descriptive message.
Start logging in candlepin specific files rather than catalina.out.

Everything previously sent to catalina.out now goes to
/var/log/candlepin/candlepin.log.

Additionally anything WARN or higher will go to error.log in same
directory.
Use consumer UUID for principal, not name.

Consumer name can be changed, UUID cannot and would make a better
identifier for events.
Improve event logging in audit.log.

Saw some room for improvement.

Old format:

Tue Oct 02 11:38:47 ADT 2012 - OWNER CREATED on
402881983a21ea18013a21ea325f0002 owner 402881983a21ea18013a21ea325f0002
performed by org.candlepin.auth.PrincipalData@3c6d66d3

New format:

Thu Oct 03 12:51:18 ADT 2013 - POOL 40288198417f019b01417f0418f00562
DELETED for owner 40288198417f019b01417f04058d052b performed by user
admin
Log basic request info at INFO level.
Log a unique request/job ID with every statement.

Uses log4j's thread local MDC to store the value, which can be
referenced in the ConversionPattern in log4j.properties. If the value
has not been set, an empty string will be logged.

For HTTP requests we generate a UUID in the logging servlet filter.

For Pinsertter jobs, we use the already unique job name which matches
what you would see in cp_jobs as the job ID.

This allows us to grep for the statements specific to a particular
request or job execution very easily.
Drop a pinsetter job test.

This is failing due to the use of job context for new logging. However
it cannot be mocked because of the JobKey class being final.

Test is of marginal value and this code is up for replacement in a
separate branch, so removing for now.