let's call justin's interface a `PerspectiveWithValues` or something (better name tbd?).then what if the autodomaining function could take two arguments: first, all the values (flattened), second, all the perspectives with values. for the usual case where they just want to cover all the data and dont care which set it came from, they reference the first argument and its in a convenient form. if they want to do it on a per-dataset basis, they can use the second argument.

the downside to this approach is it is memory inefficient, since we will be potentially temporarily doubling memory usage, if we have a really big dataset maybe this would be a problem? i think in general our expectation is that huge datasets will be downsampled by the server before putting into plottable.

we should definitely be thinking about perf here, autodomaining is always gonna involve some linear scans over the dataset, if the dataset is huge then the user can just provide domains explicitly and thereby disable autodomaining, though, so maybe it's not an issue.