Only attempt to fix self-intersection between multiple components

Doing this reduces the likelyhood of entering an infinite recursion
whereas UnaryUnion (meant to fix that) would enter the self-intersection
attempt again. Fixes #615 for which a test is added.

This also gives us back an exception with the input of ticket #488,
which is the same behavior JTS exposes. The (bogus) test for it
is disabled by this commit.

git-svn-id: http://svn.osgeo.org/geos/trunk@3751 5242fede-7e19-0410-aef8-94bd7d2200fb