TEPHRA-3 Switch tx write pointer to increment prior to assignment

Switches transaction write pointer generation to happen at the start of a request.  This ensures that generated transaction write pointers reflect the current timestamp, fixes issues with resetting the transaction state, and cleans up some unnecessary tracking of the next write pointer.
I think I did this on purpose (long time ago). The idea was that this represents the start time of the transaction. Even though it is not needed for timing out (long tx does not time out) it is still useful to keep that info. For example, in the tx debugger tool we can show how long transactions have been running. However, that was before we changed the way we represent start time in the tx id. Now the time is safely represented by the tx id, so it's ok to change to -1.