Refactor Fortran grammar and rewriter
Use FreeMarker as the template engine

Because StringTemplate insists the separation of model (i.g. application) and
view (i.g. template definition), we don't have programming power during the
writing of template. But FreeMarker gives us the power.

Experiment with my idea about template block. It works.