Add classes of abstract syntax tree

Add following classes:
* BaseAst
* IdentifierAst
* TypeAst
* IntegerLiteralAst
* ProgramAst
* FunctionDefinitionAst
* ArgumentListAst
* ArgumentAst
* StatementAst
* CompoundStatementAst
* ExpressionStatementAst
* VariableDefinitionStatementAst
* VariableDefinitionAst
* IfStatementAst
* WhileStatementAst
* ForStatementAst
* ReturnStatementAst
* BreakStatementAst
* ContinueStatementAst
* ExpressionAst
* AssignExpressionAst
* OrExpressionAst
* AndExpressionAst
* ComparativeExpressionAst
* AdditiveExpressionAst
* MultiplicativeExpressionAst
* UnaryExpressionAst
* PostfixExpressionAst
* ParameterListAst
* ParameterAst
* PrimaryExpressionAst
Add classes of AST data

Add following classes:
* IdentifierData
* TypeData
* IntegerLiteralData
* ProgramData
* FunctionDefinitionData
* ArgumentListData
* ArgumentData
* CompoundStatementData
* ExpressionStatementData
* VariableDefinitionStatementData
* MutableVariableDefinitionData
* ImmutableVariableDefinitionData
* IfStatementData
* ElseStatementData
* WhileStatementData
* ForStatementData
* ReturnStatementData
* BreakStatementData
* ContinueStatementData
* AssignExpressionData
* AddAssignExpressionData
* SubtractAssignExpressionData
* MultiplyAssignExpressionData
* DivideAssignExpressionData
* ModuloAssignExpressionData
* OrExpressionData
* AndExpressionData
* EqualExpressionData
* NotEqualExpressionData
* LessExpressionData
* GreaterExpressionData
* LessOrEqualExpressionData
* GreaterOrEqualExpressionData
* AddExpressionData
* SubtractExpressionData
* MultiplyExpressionData
* DivideExpressionData
* ModuloExpressionData
* NotExpressionData
* MinusExpressionData
* FunctionCallData
* ParameterListData
* ParameterData
* ParenthesizedExpressionData
* IdentifierExpressionData
* IntegerLiteralExpressionData
Use namespace instead of suffix

Remove 'Ast' suffix from abstract syntax tree classes.
Add 'ast' namespace to it.
Merge pull request #19 from kmc-jp/ast

抽象構文木を表現するクラスを追加