add best_compression option for Lucene 5.0

upgrades lucene to latest, and supports the BEST_COMPRESSION parameter now supported (with backwards compatibility, etc) in Lucene. This option uses deflate, tuned for highly compressible data.

`index.codec`::
     The `default` value compresses stored data with LZ4 compression, but
     this can be set to `best_compression` for a higher compression ratio,
     at the expense of slower stored fields performance.

IMO its safest to implement as a named codec here, because ES already has logic to handle this correctly, and because its unrealistic to have a plethora of options to Lucene's default codec... we are practically limited in Lucene to what we can support with back compat, so I don't think we should overengineer this and add additional unnecessary plumbing.

See also:
https://issues.apache.org/jira/browse/LUCENE-5914
https://issues.apache.org/jira/browse/LUCENE-6089
https://issues.apache.org/jira/browse/LUCENE-6090
https://issues.apache.org/jira/browse/LUCENE-6100
can we randomize this setting in the index template in `ElasticsearchIntegrationTest`?