Fix transaction layering and disable retries
Fix transaction layering and disable retries

The execution engine implementation relies on transaction conflict
resolution being immediate for it to ensure global atomicity of
operations. This change ensures that:

- We're not layering transactions unncessarily in the core evaluation
loop.

- We're not retrying failed transactions, to ensure that we're not
re-trying code with side-effects guarded by transaction conflicts.

- We know about the transaction failures and handle those gracefully.

The default for ndb transaction retries is 3, which means it will try to
commit a transaction then try 3 more times if it failed the first time.
Setting the retries to 0 in the operations we want to use for global
atomicity gives us the behaviour we want in the task implementations.

R=abennetts@google.com, fancl@chromium.org
TBR=fancl@chromium.org

Bug: chromium:1034373
Change-Id: I29b1de9c7b8cc04051126d46dfdf3c8d6aaeba35
Reviewed-on: https://chromium-review.googlesource.com/c/catapult/+/1988283
Reviewed-by: Dean Berris <34a37f59e4ade3cf49221306f04217acf3e86255@chromium.org>
Commit-Queue: Dean Berris <34a37f59e4ade3cf49221306f04217acf3e86255@chromium.org>
Auto-Submit: Dean Berris <34a37f59e4ade3cf49221306f04217acf3e86255@chromium.org>

catapult-project/catapult,catapult-project/catapult,catapult-project/catapult,catapult-project/catapult,catapult-project/catapult,catapult-project/catapult,catapult-project/catapult