Remove old wrapper macros
Experiments for new FormatArg class
Replace FormatIterator with simple loop

Move FormatIterator state machine into a single function, which allows
for considerable simplification in the variable precision / variable
field width case.
FormatList type + reinstate C++98 support

* FormatList type to hold a list of arguments to format() in a
  type-independent way.  May become part of the public interface in
  version 2.0, as a convenient way to pass arguments to a non-template
  function.  A bit like C's va_list, but typesafe for this particular
  purpose.

* Reinstate C++98 support by simulating all variadic templates using
  macros, up to a certian number of arguments as usual.

* Some minor renaming for clarity
Kill off more disgusting implementation of FormatArg

There doesn't seem to be a really clean way to get access to what is
essentially a vtable of functions templated on the argument type.
However, we can at least kill off the more disgusting implementation
option.
Make bloat test fairer + more realistic

* Make iostreams formatting match the printf versions

* Make local const char* versions of strings before passing to printf()
  variants.  If not, templates will be instantiated with the distinct
  char array types char[13] and char[4] for "somefile.cpp" and "asdf"
  respectively, which probably isn't very realistic: if they were
  constant arrays, they would probably be part of the format string
  rather than separate arguments.
Proper type-agnostic FormatList + vformat() function

* Make FormatList type independent of the number of template arguments,
  and introduce a vformat() function, analogous to C vfprintf().

* Create FormatListN<n> template for fixed size format lists, to avoid
  any dynamic allocation where possible.

* Create makeFormatList() and FormatListRef types as a convenient way
  for users to create and use FormatListN, without worrying about the
  exact type.
Fix missing inline for vformat()
Tweak to keep non-stripped output in bloat_test.sh
Simplify implementation of truncating conversions

* Move the truncation into formatValue() where it should arguably be -
  the user should be able to decide to ignore it for their custom type.

* Simplify argument passing classes, which no longer need to have
  the truncating conversion as a separate method.
Minor edits to documentation
Fix bug in assert() based error handling

Force return after call to TINYFORMAT_ERROR to avoid bad indexing if the
user has supplied too few arguments.
Clean up variable width & precision handling

General cleanup to immediately pull out variable width and precision as
required, now that they're immediately accessible.  This removes the
last vestiges of the state machine which was previously used to handle
variable width and precision.

Also add additional unit tests for variable precision & width error
handling.
Make error handling unit tests more concise
Merge type-opaque formatter list work

This brings major improvements to reducing code bloat, simplifies the
handling of variable width/precision, and clears the way for an
implementation of argument reordering.
Add test executable names to gitignore