Lasso selections: reinstate Border mode

It's not perfect, but the code is simple and fast, so perfectly
acceptable IMO.
Fix issue if Close All is used after multiple Close requests
Polygon selections: initial build

This is an enormous commit, as I've basically finished polygon
selections from start-to-finish, minus a few minor things (key
modifiers, in particular).

Polygon selections proved to be a problematic addition, as they use a
different UI paradigm than other selection tools.  All other selection
tools are considered "finished" when the user releases the mouse.
Polygon selections, however, are created by clicking each point in turn,
and they are only finished when the initial point is once again clicked.
This made them a big hassle to deal with, as most of PD's standard mouse
behavior code was not usable.

Polygon selections also have the odd case of "what happens if the user
initiates some menu action before the polygon has been completed"?  I've
made it so that any unfinished selection is simply ignored, which means
the user can continue assembling the polygon after a menu action
completes.

Curvature has also been added as an optional feature,
interior/exterior/border types are all supported, and of course
antialiasing and feathering works as expected.  As far as editing an
existing polygon goes, any polygon nodes can be edited after placement,
and the polygon as a whole can always be moved around the screen.

As mentioned above, key modifiers are not implemented yet; I'll tackle
those in a future commit.  Besides those, I believe the tool is working
quite well.