avoid panicing and return errors when MDB fails

MDB transaction starting can fail due to resource overloading. instead of panicing just return errors.
I only fixed these two functions since I am running into issues with them, but could fix other ones too, that start transactions.

Fyi, this part can still remain as a panic, since at this point failure is probably a lot less likely.
However returning errors still seems cleaner than to outright panic and crash the leader completely.