Performance improvements ahoy!

We now remove the sprintf style pre-processing and merely store the arguments and the unprocessed format string.

We then parse the format string producing an array of operations. We now cache the operation - giving us a 4x speed increase.

We then parse the operations and extract arguments from the stored arguments as needed.