Remove the need to set needs_retval

The way we use needs_retval can be simplified by simply using retval. This
reduces the code complexity a lot since to make a 'with api.trans() as store'
not commit we just need to do 'store.retval = False' instead of having to set
'store.needs_retval' too.

Also, fix one test that was not mocking store.commit like other tests alike does

Change-Id: I065db63611b4ba436f2c8e63be59717373ebb86d