Kiama merge with 0.7.0 grouped

Introduce `Grouped1` data type for return type of `DList#groupBy#` methods. The data type encapsulates functor composition as well as encodes non-emptiness of the returned iterable in the type system. `Iterable1` is a new data type with a safe `head` and `tail` function since it has a length of minimum 1.

The call(s) to `sys.error` that were implemented because it was assumed that the iterable was non-empty have been removed and the resulting client code is both shorter and safer.