Add naming to layers in transformer.
Add naming to layers in transformer.

Previously, all layers were named sequentially as "layer_%03d".
This change allows the names within a Transformer block to be set explicitly,
and names the blocks sequentially. So, for example, a UniTransformer with 2
layers used to have layer names
layer_000/...
layer_001/...
layer_002/...
layer_003/...
Now, by default, the layer names are
stack_000/layer_000/...
stack_000/layer_001/...
stack_001/layer_000/...
stack_001/layer_001/...
If, for one of the layers in the layers arg to make_layer_stack, you provide
tuple of (layer_name, layer_class), the layer_name will be used instead of
layer_XYZ.
Note: This new default behavior will break old checkpoints. You can use the
old behavior by setting block_scope=False in make_layer_stack (e.g., via
a flag for gin: --gin_param="transformer.make_layer_stack.block_scope=False").
PiperOrigin-RevId: 262997931

tensorflow/mesh,tensorflow/mesh