Allow users to use non-strict width inference

The general idea here is that some tools produce malformed Flo files
and we'd just like to pass them through to see what happens.  This
patch adds a mode that parses Flo files in just that mode.  Note that
this fixes the graph as it reads the file, which means it'll produce a
sanitized Flo file in memory -- that Flo file just might not actually
consist of anything sane!

In order to run in this mode, do something like

  $ LIBFLO__ALLOW_BAD_WIDTHS="true" flo-canon ...

which will enable the new mode.
Redirect valgrind's logs to a file, not stderr

The new mode I just added causes flo-canon to output a bunch of stuff
to stderr that's actually expected.  The old test script checked for
an empty stderr to make sure valgrind has no errors.  This just
redirects valgrind directly to a file.
Stick with the first node during width inference

This just happens to work better: bad constants will now be inferred
to the correct widths automatically.  It's not best to rely on this,
though...