Bugfix: "nets" data normalization was wrong in some cases...

The code that normalizes network lists from "nets" files would
  fail on certain forms of input containing duplicates and/or
  mergeable subnets in the data.  This refactors the normalization
  code to handle these corner cases correctly.
It also introduces a small functional change: prior to this commit,
  conflicting explicit duplicates were a hard error (same
  network/mask -> two separate dclists), and implicit duplicates
  (where other subnets had to be merged before the duplicate was
  obvious) were completely mishandled.  Now both conflict cases
  result in a warning and an arbitrary choice between the conflicting
  results.