use local _argn instead of ARGN for efficiency

It seems in a macro doing something like
```
message("${ARGN}")
```
is ***much*** slower than
```
set(_argn ${ARGN})
message("${_argn}")
```
I don't know why, but this fixes it in the pack/unpack macros that get called a lot.

**This one change took average configuration time on a certain project from ~115 seconds to 29.**