remove contention point with life.getStatus() in assertDatabaseIsRunning
Merge pull request #1760 from jexp/life-status-db-isrunning-contention

remove contention point with life.getStatus() in assertDatabaseIsRunning
Defer unique constraint verification for better performance.

o Reading from index for before adding each new entry is expensive,
  so delay verification until the end.
o Use IndexReader.terms() to iterate though all index entries in
  sorted order and verify that total number of unique terms matches
  expected number of entries.
o Use large precision step for numeric properties; reduces size of
  index on disk, and removes superfluous terms when iterating through the index.
o Group together property encoding logic into Enums.