Actions with clone() pattern 1/3

This is the 1st patch of 3.

1)
Removes the copyWithZone() patterns.
Adds the clone() pattern instead (which is more C++ friendly)
Adds also "const" to getters.
Removes "calling explicit constructor"
Merge pull request #2884 from ricardoquesada/actions_clone_pattern

issue #2289: Actions with clone() pattern 1/3