New button state life-cycle & GUI force sync updates
This update adds a new Button state life-cycle to make it easier to prepare data before rendering and a new forceSyncUpdate to force a GUI to be updated in sync.
When forcedSyncUpdate is enabled it will also update sync even if you use the onUpdateAsync().
Changelog
Added ButtonPrepareRender method, which makes it easier to prepare data for render. (commit: 3ab90d0)
Implemented prepareRender method in ActionButton, ItemInputButton, etc. (commit: 01039ed)
Added forceSyncUpdate option to GuiWindow. (This option forces any updates, also async render, to be executed in sync. This should be used when using ItemInputButtons to prevent item duplication!) (commit: 12ff065)