Use LSD instead of Canny+FindContours in FindQuads
Some optimization in FindQuads::mergePoints

Can be still improved.