Fix undefined behavior due to unassigned action

This wasn't detected earlier because the default Callback implementation always
assigns action (except for in the demo app, which is how this issue was
detected). This assigns a default action of kRead to all actions. The added unit
tests override the callback methods to not assign an action. I verified with
msan that this does indeed trigger a read of uninitialized memory, which I also
verified is then fixed by this change.

Change-Id: Ifd79721aefeb797a40b4f42e1b16b831f508be0a
13 files changed