Robot name 20141001 rc

Refactor of the Robot Name exercise. Split the `initialize` method into numerous smaller methods. Split error message into two separate messages allowing for more detail.

I'm not a huge fan of the `generate_new_name` method, my thinking was that anything more clever/dynamic would need to tie into `valid_name` so that the robot naming format could be changed from one place instead of two.
This is confusing. You have an assignment on line 9 of initialize, but then you're assigning it here too. It seems like you're using `@name` like a local variable when it is an instance variable.