This is a **work in progress** patch to add Edge selection support for the UV editor - T76545
Part of GSoC 2021 project : UV Editor Improvements - T88990
Changes made so far :
* Add UV edge selection flag - MLOOPUV_EDGESEL
* Refactor existing UV element selection functions to use the edge selection flag wherever required
* Refactor existing UV element check functions to ensure proper selection states using the edge selection flag
* Refactor UV selection operators to use the edge selection flag :
* Mouse select
* Box select
* Circle select
* Lasso select
* (De)Select All
* Invert selection
* Select more/less
* New functions for selecting vertices or edges that share the same location, either on 3D mesh or in UV space.
* Functions for flushing selections between UV vertices and edges
* Add small penalty while searching for the nearest UV edge. Ensures that UV edge selection will select other edges sharing the same location in successive selection attempts.
* Expose UV edge selection flag as boolean in Python
Design limitations :
* Presently there's no way to flush selections based on UV select modes since switching selection states in UV editor is done using RNA props and not using an operator
* Abruptly changing sticky selection modes without clearing the previous selections creates edge cases. In case the user decides to switch sticky selection modes, he/she would have to redo all the selections manually in the new sticky selection mode
Issues fixed so far :
* T76343
* T78757
* T65836
* T26676