some questions raised during review
[minor] formats: expose fmtty_of_fmt to ease format processing

Given that neither datatypes are abstract (they could not be), this
function is definable from the oustide anyway, so there is little
point not to expose it.
sets up a 'legacy mode'

When the OCAML_LEGACY_FORMAT environment variable is set, the compiler
will try to emulate the behaviour of the previous implementation of
format.
[legacy] some benine meaningless formats were previously ignored
[legacy] disable incompatible flags in legacy mode
bootstrap
when passed to Printf, %l%n%L should be interepreted as %u, not %d
a testsuite to measure format behavior changes and the effectiveness of legacy mode
Add support for ignored scan_get_counter formats (%_[nlNL])
bootstrap
add typer support for the new formats
bootstrap
testsuite Makefile: use 'ocaml -init /dev/null' to avoid interferences with ~/.ocamlinit
testsuite for %_[nNlL]
[minor] introduce type aliases for simple padding and precision types
bootstrap
[legacy] allow incompatible or unsupported numeric formatting flags
[legacy] allows some more ignored formats
parse the ignore flag before all others

The legacy implementation doesn't support "%+_", "%-_" etc. which were
accepted by Benoît's patches. This creates a discrepancy (though not
a regression) that is not necessarily desirable (and in any case makes
fuzz-testing for difference return non-bugs). Long-term, I think that
we're good with the previous, simpler structure where "_" must always
be the first flag.
fix printing bug: (Printf.printf "% 04d" 3) => "00 3"