Basic elliptic brush support

Add distance helper to Base module

Updated test program
Decrease test canvas size
(0,0) of pixel mask is lower left point, not upper right
Drop redundant datatype declaration
Support angles for the elliptic brush tool
Use squareMaskTool to express roundBrush & ellipticBrush
Clarifications and doc fixes
Polygon tool
Generic tool arity reduction/raising
Drop unused pragma
Rename Reduce class to Explode, fix [SP] explosion for empty lists
Reorder definitions