Adds a command staging to determine whether a command is possible given the current parameters (this allows the result of the attempt to come in before the results of the command); fixes some object destruction bugs; adds object destruction protection