uniter: move action validation into context factory

Main benefit:
  * untangled much of the ugliness/confusion in uniter.runHook
Main drawback:
  * dropped handling for nonexistent actions
Reason I don't care about the above:
  * it was incomplete and entirely untested
Driveby improvement:
  * uniter no longer takes the execution lock until it's got a valid context to run in