fix bug unescaped_string_literal

Running the command:

erlydtl:compile(<<"{{ text|add:\"\\\"\" }}">>, test).

will result in a crash. string:strip will remove all \" from the
beginning and end of the string \"\\\"\", leaving only \\. It should
only remove one \" from the beginning of the string and one from the end.
Use merl [1] for compiling the erlang AST tree (fixes #123).

Also, `number_literals` are now converted to erlang integers in the scanner.

[1] https://github.com/richcarl/merl
Add merl dep also when building slex files.
Restructure compiler code (close #136)

The common infrastructure routines are left in erlydtl_compiler,
while those specific for compiling to .beam files are moved into
erlydtl_beam_compiler and generic stuff is put in erlydtl_compiler_utils.
Fix result value of compile_dir templates

Relates to comment in #124.

This is a backwards breaking change (again, sorry, but it just wasn't
right as it was).

The compiled dir template now returns `{ok, Rendered}` or `{error,
Reason}` just as normally compiled templates.
Reindent body_ast function.
Fix for compile_dir fix.
Copy regroup tests w.o. endregroup tag.
change erlydtl filters handle unicode input
Make endregroup tag optional (fixes #101)

Django does not have endregroup at all.
We keep it as optional for backward compatibility with ErlyDTL.

The dtl context has been moved into the treewalker record while
traversing the template AST, to allow it to change on any node.

Local scopes can now begin at any point in a block, and all
nested scopes are automatically closed when the block scope ends.
Make sure merl gets built when using rebar (#123)
Support {% trans .. as .. %} tag (#131)
Fix bug in new scope routine (#101)

When there was some text surrounding the sub scope,
it only kept the last piece.
Tests updated to catch this.
Support `{{ block.super }}` in block tags (fixes #18)
Only list global variables (fixes #118)
Add erlydtl_library behaviour with accompanying options (fixes #137)

New options are libraries and default_libraries.
Deprecated but still supported options are custom_filters_modules
and custom_tags_modules.

Note, that the built in filters are still in the old format,
not yet migrated to the new library behaviour.
Don't throw errors around, add them to the context (#85)

Provide position info with error/warning when available.
Also added a few clauses to format_error for missing error messages.
Introduce different verbosity levels.

Defined levels are INFO, DEBUG and TRACE.

For each `verbose` option present in the compiler options,
the verbosity level used is put up a notch
(i.e. `[... verbose, verbose, ...]` yields INFO and DEBUG output).
New `load` tag (#100)

Need more tests before being ready to close this.
Add more tests for load tag and related options (fixes #100, relates #137)