Update BFSMulti::interpolate()

- move DeadEndRemoval at the end of the function.
- before add new edge, make sure that there is no edge including invalid
one. If there is invalid edge, make it valid and update the polyline.
- If there is no close vertex with more than 1 degree, try to find the
closest vertex with degree 1 in order to snap.