using Lindig's strict pretty printer

* Implemented Wadler document algebra with explicit groups, meaning
  that a break should be rendered to a linebreak or a space as
  specified by a mode: `Flat` or `Break`.
* This algorithm reduces the search space for document layouts, as
  no `best` function is used to search lazily over layouts with a
  flat or newline breaks.
adapted IO.inspect calls to Lindig interface

* group1 and line functions were changed
* relying on `surround` helper
* using a default identation of 2, this should be an option?