The interface for all Evolvables, i.e. which implement mutation, randomize and copy operators.
- 
copy()
 
- By default, returns a full deep-copy - subclasses should implement something faster, if appropriate.
 
- 
mutate(**args)
 
- Vary some properties of the underlying module, so that it’s behavior 
changes, (but not too abruptly).
 
- 
newSimilarInstance()
 
- Generates a new Evolvable of the same kind.
 
- 
randomize()
 
- Sets all variable parameters to random values.