Allow node names to be changed

This is a bit of a hack, but it does allow me to use a "libflo::flo"
object to just store all groups of Flo operations.
Add operation width based width inference

This used to get done in the parser, but now I'm actually regularly
creating Flo files from programs.  This change allows me to build up a
Flo file without specifying widths everywhere.