Adds a variant-type filter

Also correctly calculates true/false/pos/neg etc for SVs.
May be worth doing in a localization update, but we've been using d3.format for a while now. Would be non-trivial to localize everything, I think, and at this point would just be confusing to do in an ad hoc manor (e.g. what do we do with dfmt, nearby?). Would be good to talk about localization at some point, though, but I'd rather not address it in this PR affecting unrelated code.

d3.locale could help us out, too, if we decide to do that.