THEMA 5 surface_distance in surface.py

added surface_distance method in surface class + 2 other methods used by this, not tested atm