Add "flo::canon()"

This canonicalizes a flo class.  Right now this is a bit of a mess:
everything is copied over from flo::parse() and it just does width
inference.

Now that Flo files are not constant, I should probably just move
everything into this file and then call it from all the constructors,
eventually completely removing the parse method.  This won't happen
for a while, though...