Arguments:

Start Indicates the start of an subcircuit list; call this before any Need actions.
Need Searches the board for an subcircuit with a matching refdes.
If found, the value and footprint are updated.
If not found, a new subcircuit is created with the given footprint and value.
Done Compares the list of subcircuits needed since the most recent Start with the list of subcircuits actually on the board. Any subcircuits that weren't listed are selected, so that the user may delete them.