Button states, disabling, and promise handling for async actions. Built to support ember-fetch async calls.