Update to 1.12.2.3

changes:
1.12.2.3
 - Removed CPP; use objects for all-nullary constructors (for now).
     This gives consistency with old aeson behavior.
 - Require aeson >= 0.6.2.
     Otherwise we can't control how generic json renders.
1.12.2.2
 - Fixed bug in Walkable Inline Inline / walkM instance for Note.
1.12.2.1
 - Removed extra #endif. Thanks to Sergei Trofimovich.
1.12.2
 - Adjusted ToJSON/FromJSON instances for aeson >= 0.6.2.
     aeson 0.6.2 changed its default method of deriving ToJSON/FromJSON
     instances for generics.  Instead of {"Str": "hi"}, the inline
     element Str "hi" was becoming {"tag": "Str", "contents": "hi"}.
     This change causes problems for the python pandocfilters module.

     This patch uses CPP macros to ensure that the JSON instances work
     the same regardless of what version of aeson is used.