Require aeson >= 0.6.2.

Otherwise we can't control how generic json renders.
Removed CPP; use objects for all-nullary constructors (for now).

This gives consistency with old aeson behavior.