add mapping for optional hooks element in client config
add list of command hooks to project options
populate command hooks in project options from zanata.xml
Replace run() with performWork() below ConfigurableProjectCommand

    This prepares to split run() into phases to:-

     - run preparatory checks, possibly aborting
     - run "before" command
     - perform work
     - run "after" command

    To avoid the upfront cost of rewriting each implementation, this
    simple rename and wrapper will allow us to update subclasses as
    we have time.
run hooks before and after main work of project actions
run befores, command and afters in order, abort if any fails.

    This changes behaviour of before and after commands so that
    they will always run without waiting for command confirmation,
    but also aborts all remaining commands if any command fails.

    Since the main use case of commands is to prepare files before
    push, waiting until after the initial analysis and confirmation
    does not make sense. For now I am implementing only the basic
    functionality that meets the use-case.