detect infinite rigid loops in the engine. makes #246 not hang browser.

The actual issue is rigid rules on the same layer (e.g. duplicates)
both matching and ORing the rigidMask representing their rigidGroupIndex
into the same rigidGroupIndexMask. Given rigid rules #0 and #1, the
resulting groupIndex that it tries to ban becomes 1|2==3.
Make synonyms of properties work.

fix #215, fix #230, fix #241, fix #243, fix #245
Merge pull request #247 from rmmh/master

Bug Fixes