Added point, line and path intersection methods.

This is used for checking tether overlap. The library functions for line
intersection are too loose as they also allow 'touching lines' as an
intersection.