Allow delegate input consumer to clear consumer state

- When we have multiple wrapped input consumers, mConsumer will be
  set to the wrapper while the caller can actually be the input
  consumer being delegated to (ie. other activity ic). So we should
  clear the consumer state if the caller is anywhere in the IC
  hierarchy.  This results in a separate issue where mGesture
  could be cleared during onConsumerAboutToBeSwitched() before being
  passed to the new consumer, so make a copy of the previous state
  just for passing to the new consumer.

Bug: 152318829
Change-Id: I4afcef5b18aa772889e9104f3977887893f174ea
4 files changed