Fix Series.hasValues, add test coverage

>  you can always use the classification to ensure that each case is actually being hit.

Are classifications actually asserted in automated unit tests? I'd be hesitant to rely on this telling us we have good coverage if it won't break on us if cases somehow stop being hit over time (ScalaCheck upgrade, new types of cells being added, indirect change in generators, etc...)

> I prefer the check methods that use Arbitrary and just have types that are descriptive (as above, NonEmpty[Series[K, V]])

Do you mean having generators like:

```scala
arbitrary[NonEmpty[Series[K, V]]
arbitrary[Empty[Series[K, V]]
```

etc... ? I had considered that when I started writing the `Arbitrary` function permutations to trim down on test code, but then I had a tough time figuring out where to draw the line:

```scala
Non[Empty[Sparse[Series[K, V]]]]
```

:)

In the end, I thought to draw the line (right or wrong) where if it wasn't actually a different type of thing we relied on in production code, don't create a type for it specifically for implicits.

I would be all for the pattern `arbitrary[NonEmpty[Series[K, V]]]` if we can actually re-use, for example, the "NonEmpty" generator logic for different types of series. I'm not seeing right away how well this works alongside the permutations of sparse, dense, dirty series though.