Новая версия линков

Большой рефакторинг EdgeElement'а: всё, что могло хоть каким-то образом зависеть от типа линка, вынесено в отдельные классы.
Изменения в поведении: у линков можно менять порты, для квадратных линков - двигать отрезки паралелльным переносом. Квадратные линки теперь огибают элементы, к которым прикреплены (в адекватных случаях, по крайней мере).
Немного подкорректирована сортировка линков на линейных портах, они сейчас пересекаются гораздо меньше, чем раньше.