Fix Series.hasValues, add test coverage

Good point. I've updated it to weight `Value`, `NA` and `NM` cells with a ratio of:

* `(9, 1, 0)` for sparse
* `(7, 2, 1)` for dirty

I'm not too attached to those numbers, just a guess. Feel free to suggest a better ratio :)