ISPN-2689 : supporting Apache Lucene 4

The complexity here is to support the full range of useful versions: Lucene 2.9.x, 3.0.x, 3.1, 3.2, 3.3, 3.6.x, 4.0 and 4.1.

Also we want to be 100% backwards compatible with our own API, and be forgiving towards JVM implementations which eagerly initialise classes declared in import statements.

https://issues.jboss.org/browse/ISPN-2689

Note the Maven modules structure changed a bit.