Allow the creation of multiple duplicate layers
This is potentially useful in the case of several dependent layers with (nearly) identical submit descriptions and functionality, e.g. merge/reduce patterns.
Also drop support for python3.8 to allow type aliasing with primitive types.