Add soft input support to Zebra/ZebraImpl

This includes making ZebraImpl observable, so that other objects can be
notified when the soft inputs change (via a SoftInputChangedEvent).