fixes IdTile equals and hashcode

It was broken by introduction of function parameter mappedRepr which
should not be used for equality check (it would be impossible to
implement, properly).
introduces custom Enum implementation for Network
adopts custom enum for Group implementation
replaces GroupElement Seqs by Sets throughout

A Group makes more sense as a Set than as a Seq, but before the modified
Enum this was nearly impossible to implement.
removes RotFlip.elements Seq in favour of values set
Merge branch 'enumreplacement'
branch elimination in RotFlip * and /

as well as proper test case for those methods.
adds a lot more adjacencies

Actually, this commit adds _a lot_ of adjacencies that might be of
limited use, so the exact heuristic for determining which adjacencies to
include or not is still to be refined. Bear in mind that this commit
increases compilation times, significantly, as well as the amount of
overrides in the output.

Besides, this commit adds distinct Sets and Seqs for the override
networks to overcome limitations in Scala's Enumeration implementation.
An update introducing my own adaption of Enums to overcome this problem
is pending.

Moreover, a few functions related to properties of the networks have
been separated from various places into a common module to keep future
modifications simple and in one place.
redefines network sets in terms of proper ranges
adds Rule wrapper for proper equivalence handling
updates enum library to version 0.1.3
adds AbstractMain for reuse, making use of EquivRule

in order to remove duplicate rules from final output.
inserts common top-level package metarules