Moved histogram bucket generation out into strategy class.

This will be configurable for different types of data.
Partial bucketing strategy for false logarithm.
Query: Added a bucketing strategy for false logarithms.

This strategy has some characteristics of a log scale, but produces
regularly-sized buckets within each order of magnitude.
Improved API and documentation for bucketing strategies.
Added a factory for creating bucketing strategies.

Reuses field-setting code from FilterFactory.
Decoding URL parameters properly in bucket strategy factory.
Made bucketing strategy configurable via query definition.

The bucketing strategy can be configured by setting the "buckets"
literal field on Categories and Histogram filters. Current options
are "log", "logQuantile" and "categorical". The "log*" strategies
can be further configured via a query string, e.g:

    <literal name="buckets" value="log?base=10&n=5&scale=0.1" />
Query: Added check for filters to make sure they're the right type before instantiating.
Merged tabular data web services for tasks.

Previously there were two services: `hist`, which always returned
intrinsic histogram data, and `cats`, which always returned
extrinsic bar (categories) data. But that fails for datasets that
are intrinsically categorical.

The new web service is `table`, and it returns either a histogram
or a bar chart depending on the nature of the data.
Categorical bucket bounds no longer have epsilon built-in.

Now the range is exactly the value being stored in the bucket -
but the bucket will report that it can contain values that are not
quite equal but very close.
Queries can now be configured to categorise data differently.

When running a query, statistical data can be collected by using
a Categories or Histogram filter. Previously these filters assumed that
the data was continuous, and stored it in a series of histograms
using a logarithmic scale for the buckets.

Now the filters are configurable, and can (currently) use one of three
bucketing schemes:

- `log`: Use increasingly larger buckets for values further from zero.
- `logQuantile`: As `log`, but use regularly-sized buckets within each
  order of magnitude.
- `categorical`: Store every unique value in its own bucket.

The default is `logQuantile`.

Merge branch 'feature-hist-config' into akka-workers