Add varargs support for JSON Macro

Until now, the JSON macro did not support case classes with repeated parameters as the last
argument, and writing it by hand is unintuitive because the apply and unapply cases are not
symetrical. This addresses that issue.
Merge pull request #3587 from lloydmeta/feature/jsonMacro_varargs

Add varargs support for JSON Macro