Robot name

Robot name exercise implemented. Default name generator now persists until name collision is resolved.
these two method calls could probably be sensibly rolled into one `validate` method.