ProcessingMessage: add .putArgument() method; test it (issue #55)

The goal here is to have the base message be informative. That is, instead of
printing:

    array has not enough elements

we get:

    array has not enough elements (required: 3, found: 2)

or something similar.

We therefore add a list of objects to ProcessingMessage, which will be used in a
Formatter to obtain the final message; when .putArgument() is called, the value
is appended to the list in addition to be .put() in the map. Arguments are
appended in order.

It will be of course be the caller's responsibility to ensure that the supplied
format is correct, and that the supplied values are also correct. If a mismatch
is found between the format and arguments, the format itself is returned instead
of throwing a MissingFormatArgumentException.