Added robot model interface class

Addresses issues #8 and #9.
Any reason why some of these interface methods are purely virtual (  = 0 ) while others aren't?