[RFC][Planned Feature] Programmable Transactions

Cross posting here for visibility. Feel free to comment here or on the github issue:

Programmable Transactions are a new type of transaction that will replace both batch transactions and normal transactions (with the exception of special system transactions). These transactions will allow for a series of Commands (mini transactions of sorts) to be executed, where the results of commands can be used in following commands. The effects of these commands will be “all-or-nothing”, meaning if one command fails, they all fail; just like is done today inside of Move calls. See the github issue (linked above) for more details!