core: Optimise oo.compare when a and b are equal by reference

The 'asymmetrical' flag doesn't need to be evaluated since
all of A will be in B and vice versa as they are the same object
by reference.
Merge pull request #17 from trevorparscal/compare-optimiseref

core: Optimise oo.compare when a and b are equal by reference