This revision undergoes a number of simplifications, cleanups and fixes.Independent patches are separated out. The core patches (07, 08) now haveeasier to understand changelog. Detailed rationals can be found in patch 08.

In response to the complexity complaints, an introduction document iswritten explaining the rationals, algorithm and visual case studies: