Fix ensure_dir when debug_root is specified

Previously, we were checking if the directory exists, but not checking
it with respect to the doc_root exists.  Instead, we were ensuring the
directory with respect only to the originally provided "debug_root".

This patch ensures (har har) that when we are ensuring the directory for
debug purposes, that it includes the full path to the file.

*Additionally* calling filelib:ensure_dir(Dir) will only ensure the
directories up to the *parent* of Dir.  It's a little bit wonky, so
typically one would append a "dummy" file to a Dir path.  But we don't
need to do this since Abs is itself a file, so we ensure_dir(Abs), and
it'll ensure all the directories correctly.

Example: filelib:ensure_dir("/foo/bar/whatever/something"), will only
ensure that the directories "/foo/bar/whatever" exist and will create
them if necessary. "something" is not actually used.

The short of it is that this will fix debug_root if a doc_root is
specified, and the File to be compiled is specified with directories as
well, such as "src/view/whatever.html".
Merge pull request #166 from choptastic/ensure-dir

Fix ensure_dir when debug_root is specified
Handle loops within {%block%} and {%extend%}

When base and parent templates within {%block%} tags contain for loops,
there is an 'unsafe L' error due to matched variables automatically
being bound in case expressions.  This wraps the case statement in a
function call, containing the 'L' variable, and preventing a crash.

This also adds the relavent test.
Flush news + drop 17.0 tests on travis.
Move all for loop logic to erlydtl_runtime (#167)
Accept any identifier as attribute (Fixes #177)

Now, the . for looking up an attribute of a variable will bypass any other reserved meaning that the
indentifier may normally hold. So, in a way, the attribute lookup opertaion short-circuits the
keyword mechanism. Which makes sense, as it won't make sense to put a keyword after the dot any way.
Update README.markdown

Added a note about why merl may fail to compile
Touch up README (close #179).
fix multiple includes which uses extends with blocks of the same name.

fixes #176.
improve debug dump of compiled templates.

avoid duplicate entries in ast info.

add trace message on includes.
Check that extends-templates don't use non-block tags.

Ref. #176.
We need merl?
Merge pull request #180 from robashton/master

Merl is an application dependency
Update bundled rebar binary. Fixes #174.
-W is not a supported make flag on freebsd. Fixes #181.
Add test confirming issue #185.
Fixes #185.
Revert a change from commit 51bb1f2387b2ae839637134bb72eda627b63ec85.

Don't run tests by default.
Test confirming issue #183.

N.b. without auto_escape enabled, it works as expected.
Fix quoting in pre_hooks to get it copmiling when folder name has spaces.