Macro for generating JSON Writes that traverse all getters of a class

I found myself wanting to have a macro that would generate a JSON serialiser that would serialise not just the constructor arguments of a case class, but across all getters (vals, vars) of a class, and so took at stab at implementing it.

I couldn't really re-use the existing macro implementation because it is largely designed to work with case class constructor parameters (JsPath w/ apply, unapply), although the Implicit checker-related logic was very useful.