BUG-650: allocation-free ResolveDataChangeState.needsProcessing()

Critical path optimization. Based on logic introduced in previous
patches, we now know that when the inherited subtree listener iterable
is not a Collection, it is by definition non-empty. Use this knowledge
to elide Iterables.isEmpty() which is (relatively) costly due to
object allocation.

With this patch, ResolveDataChangeState.needsProcessing() does not
allocate any objects and relies on readily-available state to determine
whether additional processing is required.

Change-Id: I0322e0a8f58165f695f2284116057d03e2d4cb45
Signed-off-by: Robert Varga <rovarga@cisco.com>
Merge "BUG-650: allocation-free ResolveDataChangeState.needsProcessing()"