Plotly does not support arbitrary contour values, but can plot
specific contours if they are an equally-spaced range. This
commit implements the plotting of contours if the `levels`
keyword argument is passed an `AbstractRange`, or if a set
of arbitrary values are passed. In the latter case, however,
since this is not supported by Plotly, a range based on the
first and last values of the collection passed in is created
and used to define the contours. A warning is then issued to
the user.
Otherwise, any other types are assumed to be number-like and
adjusted as previously. Note that Plotly does not guarantee
the exact number of contours will be used.
This partly addresses #3356.
See https://github.com/plotly/plotly.js/issues/4503 (Plotly issue
tracking the ability to set arbitrary contours).