Refactoring in preparation of doing uniqueness checking while building indexes with lucene.

Added FAILURE type parameter to Visitor interface to allow checked exceptions to propagate.
Introduced IndexProviderCompatibilityTestSuite to verify contract of schema index providers.
Early stages of uniqueness checking during lucene index population.