Started to implement random animal

Need to fix some of the lower level implementation to be consistent. At
the moment, the gene constructor is ambiguous as to how to get the data
in, especially where a gene may contain multiple values (colour). This
NEEDS TO BE FIXED. Also some ambiguity with the enums - are we having an
enum for each trait?? Need to know the size of enums for RNG.