Implement "NonEmpty" collections

This is not a problem at all if you store the underlying collection in a single property rather than separating the first element from the rest.