Explicitly bypass undefined values in oo.compare()

{ a: 5 } was considered a subset of { a: 5, b: 3 }, but
{ a: 5, b: undefined } was not. But there is no conceptual
difference between a key being absent and a key being present
but with an undefined value, so make these two behave the same.

This only affects asymmetrical comparisons.

Change-Id: Icc6f38d29a6fe5b07ce43b7919e1d622280055e7
Merge "Explicitly bypass undefined values in oo.compare()"