Support multiple --extra-vars flags

Allows passing flags to `ansible-playbook` like `--extra-flags "foo=bar" --extra-flags "baz=qux"`. Extremely useful when wrapping `ansible-playbook` in a shell script with contents like:

    ansible-playbook -i "$1.inv" --extra-vars "ec2_stack_name=$2" "${@:2}"

Note that the above does magic things with the first two parameters, then passes the rest verbatim along to `ansible-playbook`. Without this patch, the first `--extra-vars` flag would get overwritten by a later one.

Cleanly mergeable version of #3689 (did you want me to rebase it?). Also, now uses `utils.combine_vars`, in case the user would like hashes to be deep-merged.