TinyPG callable from command line

* refactor and isolate business code (aka parse/buil/eval) from
presentation (MainForm)
* add commandline support on Main() with branch to either GUI or Silent
run
TinyPG callable from command line

strip the StringBuilder from method parameters, it now stand as a
Program Property
TinyPG callable from command line

*bug correction
*add unit test
*code refactoring
Merge branch 'refs/heads/bugfix2'
TinyPG callable from command line

*add some unit test
cleaning for the command line merge
BugFix :  grammar file not generated on build error

Scanner, Parser, ParserTree were not Generated if the grammar file
contains build errors
BugFix : relative filename causes crash in cmd window

When given e relative filename, TinyPG crashes  when launched from
command line in cmd window.
SetCurrentDirectory should not be called with null or string.Empty
directory
BugFix : relative filename causes crash in cmd window

use GetFullPath on the argument to convert relative path to absolute
pat. It prevents a lot of troubles afterward.
Merge pull request #9 from Jissai/master

TinyPG runnable as command line