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.