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.