add some more test cases:
- function like macros
- macro arguments
- variadic macros
- undef
- redefining macro
- self referential macros
- stringification test
- concatenation test
- test for #58 and #47

@todo: test cases which are not working with current implementation
Cleanup (whitespace, comments)