refactor some compiler redundancies
compiler: simpler checking for overlapping objects in a layer
avoid exploding rules when possible. fixes #178. tests are 40% faster.

tests involving the RNG are broken since the number of rules and
invocations of random changed
compiler: don't crash when objects aren't assigned layers
compiler: expand 'no'-prefixed properties on rhs. fixes #186
Merge pull request #184 from rmmh/optimize_aggregates

optimize properties