Enforced Sized to nest only white-listed collections

A possible workaround for the issue https://github.com/milessabin/shapeless/issues/206 .

I mainly added a `StrictSizeCollection` type class, used as an evidence that a `Repr` is a collection that behaves as expected for `Sized` (which should be that a `Builder[_, Repr]` given `n` elements results in a `Repr` of length `n`). I added here or there requirements of a `StrictSizeCollection` when this was required.