Ordering-related functions and ADT package
* new package `adt` for Abstract Data Types (ADTs) with mutable iterator `MutIter`
* new `itertoolz` function `positions` that collects positions of non-unique items in a sequence
* new `itertoolz` function `order_by` that orders (and fills missing) items in order given by a sequence of keys