Reparse template values ourself, in order to:
- Put multiple data in a single value (for example 'CC' will return
an array with the two bytes, instead of screwing up all following
elements);
- Know the amount of bytes read, allowing the current position to be
returned by the special '=.' declaration.
Also, the special case 'Ca$NUM' is now to be given as 'C/a$NUM'.
This solution should be much better (logically combines C/a and a$NUM)
and unambiguous (this syntax is invalid with CORE::unpack, so no
unexpected results).