Major release with extensive support for triangular meshes and changes to the raster API.
New features:
- Trimesh support: Rendering of irregular triangular meshes using ``Canvas.trimesh()`` (see [user guide](https://github.com/bokeh/datashader/blob/master/examples/user_guide/6_Trimesh.ipynb)) (525,552)
- Added a new website at [datashader.org](http://datashader.org), with new Getting Started pages and an extensive User Guide, with about 50% new material not previously in example notebooks. Built entirely from Jupyter notebooks, which can be run in the ``examples/`` directory. Website is now complete except for sections on points (see the [nyc_taxi example](https://github.com/bokeh/datashader/blob/master/examples/topics/nyc_taxi.ipynb) in the meantime).
- ``Canvas.raster()`` now accepts xarray Dataset types, not just DataArrays, with the specific DataArray selectable from the Dataset using the ``column=`` argument of a supplied aggregation function.
- ``tf.Images()`` now displays anything with an HTML representation, to allow laying out Pandas dataframes alongside datashader output.
Bugfixes and compatibility:
- Changed Raster API to match other glyph types:
* Now accepts a reduction function via an ``agg=`` argument like ``Canvas.line()``, ``Canvas.points()``, etc. The previous ``downsample_method`` is still accepted for this release, but is now deprecated.
* ``upsample_method`` is now ``interpolate``, accepting ``linear=True`` or ``linear=False``; the previous spelling is now deprecated.
* The ``layer=`` argument previously accepted a 1-based integer index, which was confusing given the standard Python 0-based indexing elsewhere. Changed to accept an xarray coordinate, which can be a 1-based index if that's what is defined on the array, but also works with arbitrary floating-point coordinates (e.g. for a depth parameter in an image stack).
* Now auto-ranges in x and y when not given explicit ranges, instead of raising an error.
- Fixed various bugs, including one generating incorrect output in ``Canvas.raster(agg='mode')``