Don't add 'y=' to expressions that have it already

This was causing errors in the repeated copying of activities. Expressions would grow from "0.8 sin(x)" to "y = 0.8 sin(x)" to "y = y = 0.8 sin(x)". The last of these is invalid, and causes copy_activity to fail mysteriously because the now-invalid dataset gets removed from the activity.
Simpler (presence) validation for Animation name
Fix validation of AnimationMarkedCoordinate

[#47371327]
Factories for Animation, Activity with animation

[#47371327]
Specs for animations

[#47371327]