Indexing: force refresh when versionMap is using too much RAM

If the user sets a high refresh interval, the versionMap can use
unbounded RAM.  I fixed LiveVersionMap to track its RAM used, and
trigger refresh if it's > 25% of IW's RAM buffer.  (We could add
another setting for this but we have so many settings already?).

I also fixed deletes to prune every index.gc_deletes/4 msec, and I
only save a delete tombstone if index.gc_deletes > 0.

I think we could expose the RAM used by versionMap somewhere
(Marvel?  _cat?), but we can do that separately ... I put a TODO.

Closes #6378
IMO we should make these two an atomic write like this

```Java
private volatile Maps maps = new Maps();

// ...

static class Maps {
  final Map<BytesRef,VersionValue> old;
  final Map<BytesRef,VersionValue> tombstones;
  final Map<BytesRef,VersionValue> current;

  public Maps( Map<BytesRef,VersionValue> old,  Map<BytesRef,VersionValue> current,  Map<BytesRef,VersionValue> tombstones) {
   // ...
  } 
}
```

this way we can make sure the view is always consistent and we only have a single volatile read?