1st level of grouping
=====================
Refactored package structure to build a directed dependency tree of
packages (almost? - check that!).

2nd level of grouping
=====================
Within packages types are modularized/bundled by moving implementations
into interfaces (because impl packages et.al. do not clarify
interface/implementation dependencies).