Added DFormat

  DFormat targets directly an algebraic data-types.
  It is possible to express choice among different constructors.
  Printing for DFormat is partial and fails when
  the concrete value passed does not match any of the constructor
  used in a DFormat.
  Added a couple of combinators that use this: many, sepBy.
Updated Csv example