Replaced empty list identifier `void` with `ConsEmpty`
* single element lists are still typed as `Cons<$type, void>`
** `ConsEmpty` is the base type of `Cons<void, void>`
** `ConsWithoutCdr` now has a `cdr` member of type `ConsEmpty`
* changed list accessors and operator accordingly
** expanded `concatenate` to handle concatenation with empty lists
* reimplemented `map` in terms of `foldr`