Change how approvals work to instead call hook

Currently approvals generate to provided path file that requests approval. Next run user can use hash from that file to approve those changes.

This is not ideal I feel and much less complicated and direct would be to just use hooks. We could have approval hooks that are called to decide if update is approved. There can be more than one approval script so approve can be done by more than now one fixed way.

Updater should provide hook with list of changes and expect it to exit in specific way to signal one of three states:

undecided

deny

approve

When at least one script provides deny or approve than such action is performed. No other script should be executed after that. Undecided result forwards updater on to another hook.