Refactor scripts
Add template support for Fortran

Reimplement the template for Fortran. The major difference from the
previous one is that the definition of template is no longer in the
codes, but in a separated file with suffix ".template".
Fix some bugs

Bugs:
- In fortran_rakefile_base.rb, we can not recognize which library is
  actually used by the executables. Now we can by the following fixes:
  - Prepend external depends in the prerequisite list.
  - Add a Rake rule for collecting 'includes' and 'libraries' variables
    for the final linking stage.
- In fortran_parser_tools.rb, we may get duplicate internal and external
  depends. Now we can't!
- In macro_processor.rb, when macros are expanded, the offsets in ast of
  code entities will be wrong, so we need invoke CodeParser.extract_ast
  again after macro processing.
Add *.smartmacro and *.template dependencies

When a code is processed by MacroProcessor or TemplateProcessor and it
is modified, then CodeMate will invoke the corresponding processors to
process it again.
Update README.md