Persistent island for awake bodies, joints, and contacts. Contacts are
touching. Contacts and joints may connect to static bodies, but static
bodies are not in the island. (b2Island)
Split an island because some contacts and/or joints have been removed.
This uses union-find and touches a lot of memory, so it can be slow.
Note: contacts/joints connected to static bodies must belong to an island
but don’t affect island connectivity.
Note: static bodies are never in an island.
(b2SplitIsland / b2SplitIslandTask — the C runs this as a task in
parallel with the constraint solve; the serial port calls it inline)