(PDB-810) Load test structured facts indices.

This patch addresses some performance issues for structured facts

- changes a coalesce that was causing the value_integer and value_float indices
  to be disregarded.  They are verified to work.

- deletes the index on fact path depth, since it was not getting used.

- creates a trgm index on fact_values column value_string, so that our trgm
  indexes are now on fact_paths and value_string. This greatly speeds
  up queries on value_string and only moderately affects the table size. See
  https://gist.githubusercontent.com/wkalt/42792c53a5dc9f0840c4/raw/29f261316bc7e39d888250401f0b1f1c8c28a87b/gistfile1.txt
  for some comparisons on a 2000 node dataset with 100 facts per node.

- put a DISTINCT clause in our garbage collection on fact_paths.  This incurs a
  minor performance cost in small datasets, but yields a tremendous benefit in
  large and highly duplicated sets by reducing the load on the accompanying IN.

- changes stringified numerical comparisons on the lower endpoints to use
  bigints instead of ints. 

- Changes the /v4 endpoint to make the equality
  operator type sensitive, i.e a value query for "24" will not match 24 like it
  does on the lower endpoints. Inequality operators will also fail on strings.
  On the old endpoints the old behavior is preserved.

- adds some rough load testing fuctions to benchmark.clj

- all structured facts indices have been verified to work.
There is a better style for doing notes, see anon for an example: https://github.com/puppetlabs/puppetdb/blob/master/documentation/anonymization.markdown

It basically entails putting a `>` at the start of the line. Also, we aren't really preferring to wrap our markdown at 80 chars, instead we just let our editors do the wrap (this is something @nfagerlund  prefers, and there are multiple reasons for this that we agree with, feel free to ask him about it). This is the only real case where its preferred not to explicitly wrap long lines.