Altered Obstructable and Ray

Changed Obstructable so that it lists vertices and lines, and if given a
Ray finds an intersection  point, if any. Changed Ray to be defined by
an origin point and an arbitrary point on the Ray (in the future this
can be the vertex the ray is created to).