Fix FERC Plant ID assignment & orphan records
Fix FERC Plant ID assignment & orphan records

This commit changes the FERC Form 1 transform process to do a better job
of assigning FERC Plant IDs based on the record grouping which come out
of the FERC Plant Classifier -- the classifier doesn't require every
single record to have an *identical* grouping, it just requires that the
groupings be internally consistent. This means they can be incomplete in
different ways, and still count as having the record assigned to the
"same" group.

In order for this to work, we needed a more subtle way of collecting
related records for ID assignment -- rather than just assigning IDs
based on records that had *identical* groups assigned, the code now
creates a graph using NetworkX, where the nodes are records, and edges
connect any seed record_id to each of the records which show up in its
match. The connected components of this graph are then considered to be
a single FERC plant. This is very similar to what we did with the EIA
boiler-generator mappings, to get EIA generation units.

Closes #240

This check-in also assigns FERC Plant IDs to any orphaned records which
didn't end up in any time series (about 12% of the overall universe of
records right now) for completeness.

Closes #223

However, there's still something a little bit wrong -- somehow there's a
small number of records that don't fall into either of the above
categories (~50-100 out of ~13,000) and the number that gets lost isn't
identical across runs! But that's a different thing to address.

catalyst-cooperative/pudl,catalyst-cooperative/pudl