add intersection stuff

    add class Line
    add intersection computation between two lines,
    between a line and a segment, between two segments
    remove does_intersect() cuz it's faster to compute the actual
    intersection point
change visiblity on 2D intervals

    return a mask depending on the chain preventing the visibility
refactor visibility functions and add TODO ones
change: make points coordinates float()
add open_seg parameter to test of point in rectangle

    set as False by default
fix visibility of 2 points

    don't check intersection w/ the rightmost vertical segment
    check if intersection of line pq is in segment pq
add visibility to a segment from a point

    add computation of the middle of a segment