add missing '#undef EXPRESSION_CTOR',
move the defininition of EXPRESSION_CTOR where it belongs to,
typedef FirstChild to make the constructor more clear,
replace RESULT_OF_FUNCTOR_HPP with the correct RESULT_OF_MAKE_EXPR
replace tabs with spaces
Merge pull request #564 from BenjaminW3/issue1

Fix Expression.hpp #define / #undef