Update PrettyParamsSpec to use s2 macro
Convert PrettyParams to a case class

Update to monocle lenses for PrettyParams
Update PrettyParams format options

Update PrettyParams to take an indentation string and strings for
formatting options instead of functions. These formatting strings are
converted to functions with the correct indentation if they contain
newlines.
Add dropNullKeys pretty print option

If true object keys with null values will not be present in the output
Split comma into arrayComma and objectComma

Split pretty print commaLeft and commaRight options into array and
object specific versions
Add lrbracketsEmpty pretty print option

Determines the spacing to use between array brackets when the array is
empty
Fix up order preservation stuff from some printer improvements.