Add `WhileStatementAst`
Add `ForStatementAst`
Add `ReturnStatementAst`
Add `BreakStatementAst`
Add `ContinueStatementAst`
Add `VariableDefinitionAst` and its siblings

* Add `VariableDefinitionAst`.
* Add `MutableVariableDefinitionAst`.
* Add `ImmutableVariableDefinitionAst`.
Organize an order of class definitions
Replace statement block with compound statement
Separate `IdentifierAst`

Separate inheritance and composition.
Separate `TypeAst`

Separate inheritance and composition.
Separate `ProgramAst`

Separate inheritance and composition.
Separate `FunctionDefinitionAst`

Separate inheritance and composition.
Separate `ArgumentListAst` and `ArgumentAst`

Separate inheritance and composition.
Separate `CompoundStatementAst`

Separate inheritance and composition.
Remove `EmptyStatementAst`
Separate `ExpressionStatementAst`

Separate inheritance and composition.
Add `VariableDefinitionStatementAst`

And `VariableDefinitionStatementData`.
Organize `VariableDefinitionAst` and its siblings

Rearrange an order of `VariableDefinitionAst` siblings.
Separate inheritance and composition.
Organize `IfStatementAst` and its siblings

Separate inheritance and composition.
Separate `WhileStatementAst`

Separate inheritance and composition.