Run more seeds when there's more examples

This just makes sure to run the same number of seeds as there are
lines in the patterns tests, which happens to be twice the number of
patterns.  I figure that's probably a sane value.
Fix "one_input_and_tree" to specify input widths

This is necessary in order to the forthcoming serial tester work.
Fix "one_sided_and_tree" to specify input widths
Implement a serial pattern merger

This is fairly simple: whenever the merge pattern is requested to make
a serial merge it simply attempts to find inputs from the pre-existing
output set and the proceeds to attach the new circuit in series after
the current circuits.

In order to do this it maintains a list of outputs that have yet to be
provided as an input to another circuit.  Every time a serial merge is
requested this list is consulted to first attempt to find an
exactly-matching width node to use as an input for each circuit input.
There is a fallback to using a node of any width and just
truncating/expanding it.

The big problem here is that all the intermediate nodes remain in the
circuit which can cause some optimization trouble.  This may need to
be revisited at a later point.

Additionally, there is now the constraint that all patterns generate
explicit widths for all their input nodes, which is the only way to
make this width inference work.  This is probably a sane requirement
(as otherwise you could generate things that cause bad width inference
behavior), so I don't mind keeping that.