moving base types (Statement and Expression) into Node.hpp to avoid circular dependencies, added assignment statement.
added very primitive function definition (no body)
added body to FunctionDefinition