Does that make sense to give a layer name to a MLP?

I think we should just set self.layer_name to None for MLPs, CompositeLayer and FlattenerLayer,
because they are not really layers, and giving them names only add confusion.

The code should however be modified at the correct locations to check if layer_name is none, and then change the debug printed info to not use it.