UI: Correct code cleanup

Old code commented to reverse list in fact did nothing, replacing with call to reverse broke menu arrowkeys direction.
Freestyle Python API: Updates and speedups for the parameter editor

In addition to D319, this patch updates the parameter editor, the UI of Freestyle.

Using new API functionality and experience gained in making D319, this patch
provides a quite noticable speedup for commonly-used Freestyle linestyle modifiers.

As this patch touches a lot of code (and mainly the foundations) it is likely that
mistakes are made.  The patch has been tested with a regression suite for Freestyle
(https://github.com/folkertdev/freestyle-regression-tests/tree/master), but testing
with scenes used in production is very much appreciated.

Differential revision: https://developer.blender.org/D623

Author: flokkievids (Folkert de Vries)

Reviewed by: kjym3 (Tamito Kajiyama)
A follow-up to Patch D623: minor code updates and style cleanup.
Freestyle: minor revisions of Python API docstrings and comments.
Cleanup: ui_but_is_editable flip return value
Correct last commit
UI: prevent dragging a popup from activating a button
Fix T41149: Dissolve Crash Due to AutoSmooth.

bmesh's 'Join Edge Kill Vert' was using own code to delete loops, instead of
using `bm_kill_only_loop()`, which did not tag loop indices as dirty (causing
the crash), but also did not free loop's CDData...
Material could end up with invalid texture paint slots on changing
engine.
Allow renaming images from list in layers panel by double clicking.

Thanks to Sebastian Koenig for the report!
initial intersect code
initial isect
intersection script
test vert intersection
check for intersections where no new verts are added first
minor fixes
WIP
add vert-edge check
Print info
De-duplicate - dont add same verts to edge multiple times