Added histograms and functional chains.
**Histograms:**
* any `TH1*` read from a ROOT file is given user-friendly methods via `TH1Methods`, in exact analogy with `TTreeMethods`.
* this includes plotting in Bokeh and Holoviews (just trying a few things; of course Matplotlib is more relevant)
* ASCII-art histograms :) .
* histogram fill methods are Numba-accelerated; use them in a compiled Python function.
* can create histograms that are not drawn from a ROOT file (histogram class has a constructor, unlike TTrees, which all come from ROOT files).
**Functional chains:**
* full suite of map (actually, "define" and "intermediate"), filter, and reduce (general "reduce" and "hist") methods, a la Spark.
* string-valued expressions and Python functions accepted; branches are pulled from ROOT file by free variable names or function parameter names.
* like Spark, the chain is lazily evaluated when it is terminated by an action (filling histograms, general reduction, making arrays). The "define" nodes are substitution expressions and the "intermediate" nodes are reused (and someday cacheable) intermediate arrays.
* "filter" applies cuts at the desired point in the chain.
* all functions in the chain are compiled by Numba in the same LLVM pass, so optimizations can be applied across chain nodes (but not through filters).
* parallel processing semantics implemented but untested. In principle, just passing a Python 3 Executor should parallelize the chain, but use at your own risk until the test suite is done.
* "hists" method produces many histograms in a single pass.
* actions have the same suite of cache options as TTree array methods.
Reference documentation has not been written for these features, nor have a suite of unit tests. Therefore, they should be considered experimental until the docs and tests are done (a future release). Use at your own risk.