Tests - Seperate class for macro resolving
Added more tests for macro resolving

This exposes a few bugs namely:

* Host macros inherited from a parent not resolved correctly

* Invalid host macros return None instead of ''

Unit tests are currently failing as of this commit.
fix testdata: macrohost2 had invalid parent
Utils: New method is_macro()
Model - Bug fixes in macro resolving

This patch changes mainly 2 things:

New constant _UNRESOLVED_MACRO = '' used instead of
hardcoded '' everywhere.

Fix cases where None would often be returned instead
of ''
Add more macroresolving tests after coverage

Ran unit tests with coverage to spot untested codepaths.

get_contact_macros() is still untested, and looks very buggy.
Utils.is_macro(): Fix doctest

is_macro() is supposed to raise exception
if a valid string is not provided. Remove part
of the doctest that expects invalid type to return
empty string.
Merge pull request #176 from pynag/fix-customvars

Patches for resolving macros and custom variables