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