1030644: Possibly temporary performance fix for distributors with lots of ents.

Problems with data serialization in the rules have exposed issue with
consumers with lots of entitlements. Current issue is for distributors
with 200+. As we do not care about status for these distributors, this
patch disables compliance checking and just reports that everything is
ok.

This will possibly be reverted, as we need to investigate the actual
issue for other types of consumers as well.
Add a script testing bind performance.

Per recent discussions this script exposes rapid degredation in bind
time as entitlements are added to a system. It does not however expose
problems with GET /consumer yet.
Added dynamic jackson filtering

Conflicts:
	src/main/java/org/candlepin/resource/ConsumerResource.java
Added a dynamic filter interceptor

More general include/exclude query param usage

Conflicts:
	src/main/java/org/candlepin/resource/ConsumerResource.java
Change include behavior

This is a bit of a refactor.  include/exclude now work on all
abstract hibernate objects.  include and exclude can not be used
together.  Include creates a whitelist, while exclude creates
a blacklist
add setBlackList
Added support for filtering encapsulated objects.

Allow filtering encapsulated objects, even in lists.
Also added testing for the dynamic filter interceptor
Fix filtering when both types present

When using both DynamicPropertyFilter and HateoasBeanPropertyFilter,
if either one allows serialization, the object will be serialized.

In order to make them work together, I merged them.  DynamicpropertyFilter
is a supertype of HateoasBeanPropertyFilter.  It makes the setup much easier
as well.
Cleaned up code for review.  Support pool dynamic filtering

Lots of javadoc, name changes, removed blacklist/whitelist
in favor of including/excluding
Major filtering refactor

Removed all code from AbstractHibernateObject.  Now we keep
data in a Threadlocal static variable in DynamicFilterInterceptor.

Set default filter in JsonProvider to DynamicPropertyFilter, so
we can just add the JsonFilter annotation (any value) and
be able to filter the response.

Filter data is mapped per object to a list of attribute names.
Once we upgrade to a newer hibernate with working
JsonStreamOutputContext.getCurrentName(), we can build
the data in the filter itself by tracing the tree.

Created new MultiFilter class that combines jackson bean property
filters that inherit from CheckableBeanPropertyFilter, in order
to use multiple filters simultaneously, and control how they
interact.
fixed over-restrictive include

include of a subobject would not display all of its data.
use IdentityHashMap to avoid NPEs from hibernate objects
Moved filter logic into the filter

Now the filter interceptor only reports what comes in from the
query, and sends out the root object
Logging fixes after rebase
Add a notification message upon deployment if desired.

Also skip unit tests requiring po files if nopo is given.
Use DynamicFilterData objects to hold filter data

DynamicFilterData objects are sent through
ResteasyProviderFactory to the filter. This allows
us to keep the logic and data in the filter data
class, and only do interception in the interceptor,
and only filter in the filter.
Reduce overhead when filters aren't in use
add pool_type calculated attribute

Add pool type rules to rules.js, used to match pool
attributes to a subscription type so that a consumer
will understand how it interacts with other subscriptions

These types are translated in java similarly to compliance
reasons.  Unrecognized strings are passed as-is, so they
should be human readable, at least in english

Add calculated attributes (currently only pool_type) to
consumer entitlements in order to display the subscription
type.
modify rules calculation, add testing
Refactor class names, change attribute to compliance_type
Added new capability "pool_compliance_type"

This way we can avoid getting entitlement pool
attributes on servers that do not support readable
pool compliance types.