Port: IndexSearcher

Also added TaskSchedulerCompletionService to mimic java futures support
Merge remote-tracking branch 'jamesblair/lucene_4_3_0' into lucene_4_3_0
Some cleanup
Cleanup, nearing the end
Merge, cleanup