ActionResult refactor to store structured results

Actually this is exposed to a number of other files, so maybe I should do this in the same PR that we rename ActionResult to ActionExecution?