Rewrite naming of Components and Nodes as a single pass triggered
in the Backend (see _ChiselMain_ documentation for details).
This implementation is textually equivalent to the previous
implementation.
A next commit will fix naming quirks that were encountered
during the refactoring.

Unit tests in src/test/scala/NameTest.scala.