!str #16484 #16392 Remove String identifier of junctions

* descriptive name can still be defined with OperationAttributes.name
* revisit all factory methods (apply/create) and implement and document
  them in a consistent manner

Refs #16484 
Refs #16392
why not use default arguments for Scala?