Private tools shouldn't be cached they are always unique as they are owned by something
Public tools are now cached by name, and we assert that they are identical
No implicit addition of #N suffixes, as that breaks the implicit assumption of many public tools which aren't configured via PyConf. For private tools this isn't needed.
Configuring a public tool with the same name and different properties results in a configuration error.