Returns this Iterable wrapped in a Some if it's not empty, otherwise returns None.
Option<Iterable<T>> get noneIfEmpty => isEmpty ? const None() : Some(this);