Refactored parsing of macros
Fixed fatal error for unknown macro
Added support for named arguments for macros
Added support for directly call macros defined in the same template
merged branch hason/macros (PR #1139)

This PR was merged into the master branch.

Discussion
----------

Improved macros

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #861, #867, #929, #1052
| License       | MIT
| Doc        | yes

* Fixed fatal error for unknown macro
* Added support for named arguments for macros
* Added support for directly call macros defined in the same template

Commits
-------

3004ba1 Added support for directly call macros defined in the same template
63615a6 Added support for named arguments for macros
09fedb8 Fixed fatal error for unknown macro
9e96837 Refactored parsing of macros
updated CHANGELOG
added an exception when a macro re-uses the same argument name twice
renamed an internal variable