Line3D class

This PR is a work in progress, contains a `base` class along with `Line3D` and `Segment3D` classes.Yet to add more methods and `Ray3D` class along with tests.
This is not very "pythonic" sounding comment. Read about "duck typing" and try to rephrase this. Python does happen to have something called Abstract Base Classes, but they are quite different from those in C++.