refactored Machine.Actions to have a base class aside from Index-specific actions
added a test to check whether the initialize() function is called by the action constructor
refactored Machine.Actions.Base to use action() instead of _execute() and returns a promise