Optionally fail task on undefined variables

This patch introduces a new configuration option called `error_on_undefined_vars`, which defaults to false.

If this option is set to true, then a task which has unevaluated variables in its arguments will fail instead of running. Output looks like this:

    TASK: [set rabbitmq password] *************************************************
    fatal: [10.20.0.7] => Undefined variables: rabbitmq_user, rabbitmq_password