Fixes/expose errors better

This is a culmination of some commits I've been trying to push;

1) the first corrects an underlying issue w/ the constant to enforce the correct typing for any constants that must be integer.  This is needed before we can re-enable the tests for undefined vars behaviour.
2) The second restores the tests from 8d0487 (and requires the first), via passing down the undefined_vars behaviour into the playbook.  This is the requested approach for fixing this, shouldn't have any complaints.
3) The 3rd adds exception propagation for missing filters, and tests for that behaviour; this is reliant on the 2nd commit (since it uses the existing tests infra. that was fixed in #2).
4) Final commit adds propagation for syntax errors; easy example for that, the following should fail /always/:

- set_fact: monkeys="{% set fact blah={} %}"

yet doesn't.

Any questions, please ping me; this series should be acceptable at this point however.