Adding test_failure to x3 test framework

The new test_failure function ensures that the first iterator argument
remains at the start position when parsing fails.
Merge pull request #31 from vtnerd/improvement/test-parse-failure

Improvement/test parse failure
fix for raw directive
added rcontext argument to parse functions
implementing BOOST_SPIRIT_DEFINE
working with the monster
- allow simple local rules
- inject the rule tag into the context ONLY IF there's no BOOST_DEFINE for that rule.
All tests are now passing.
Implemented BOOST_SPIRIT_DECLARE and BOOST_SPIRIT_DECLARE
fixed error handler
cleanup simplification
added phrase_parse_context
more cleanup
bumping copyright dates
porting qi/calc7 to x3 calc8
improved expression api
another incremental port of qi::calc7
incremental port again
passing position_cache as context to our parser (for error handling)
- added lambda_visitor
- added annotation of ASTs