Enhanced category features
Mechanisms for addition of enhanced category features.
A {@link org.apache.lucene.facet.enhancements.CategoryEnhancement CategoryEnhancement}
(which can correspond to a 
{@link org.apache.lucene.facet.index.attributes.CategoryProperty CategoryProperty}) 
can contribute to the index in two possible ways:
	- To each category with data relevant to the enhancement, 
	add	this data to the category's token payload, through 
	{@link org.apache.lucene.facet.enhancements.CategoryEnhancement#getCategoryTokenBytes(CategoryAttribute) CategoryEnhancement.getCategoryTokenBytes()}.
	This data will be read during search using 
	{@link org.apache.lucene.facet.enhancements.CategoryEnhancement#extractCategoryTokenData(byte[],	int, int) CategoryEnhancement.extractCategoryTokenData()}.
	
- To each document which contains categories with data relevant	to the enhancement, add a 
	{@link org.apache.lucene.facet.index.streaming.CategoryListTokenizer CategoryListTokenizer} through 
	{@link org.apache.lucene.facet.enhancements.CategoryEnhancement#getCategoryListTokenizer CategoryEnhancement.getCategoryListTokenizer()} . 
	The 
	{@link org.apache.lucene.facet.index.streaming.CategoryListTokenizer CategoryListTokenizer} 
	should add a single token which includes all the enhancement relevant data from the categories. 
	The category list	token's text is defined by 
	{@link org.apache.lucene.facet.enhancements.CategoryEnhancement#getCategoryListTermText() CategoryEnhancement.getCategoryListTermText()}.