Added robot model interface class

Addresses issues #8 and #9.
I'm gonna take a leap of faith and assume that these "isValid" methods will be used in conjunction with the "isValid" methods of the Trajectory Point classes; if those methods take a "const" robot model argument then shouldn't the "isValid" methods in the RobotModel have the "const" attribute as well.  Not doing so will prevent us from using those methods.