Split up Lucene and (potentially Solr)

Also use dependency injection instead of singleton