Make the samples be recursive.

It'd probably be good if a device driver could handle more than one
request before exiting.
inlineProcesses was buggy and unnecessary; delete.

This implementation deletes processes that are referenced, if they're
the children of processes that are not referenced. It's not super
obvious to me how to fix it, and besides--

We don't need to inline if we're going to do cross-process
simplification, which is necessary anyway to handle recursion.
Push Parallel nodes across process instantiations.
Assume Parallel over Instantiate is already sync'd.

For some important special cases, this commit makes parallel distribute
fully and correctly through recursion!
Push Hide nodes through in specializeGates.

It was not correct to specialize away gates that were introduced by a
Hide node anyway, and this is the most convenient place to handle
cross-process gate hiding.