Auto-generated picklers and unpicklers, used for creating the 22 versions of tuple-picklers and case-class picklers
This needs to be split into a separate trait due to https://github.com/scala/bug/issues/11768
Stupid hacks to work around scalac not forwarding macro type params properly