Extracted robot functionality into IRobot

Created IRobot, extracted all public properties and methods from Robot
to IRobot, and replaced all uses of Robot with IRobot, except for the
registration in the TinyIOC container in RobotBuilder.
starting to make iuser/userfactory

starting to make iuser/userfactory