Improved OOP robot

example will probably not compile with these changes, but after
working through the tougher Alfred_whiskers implementation some
changs to the base classes were unavoidable.