shell script/interaction before serialization

This is important to make it possible for an user to do
modifications to the symbols tables (e.g. minimization) through
script/interactive shell and make those modification affect
the generated output (if any).
reorganize/split FspDriver::parse() code

Now FspDriver::parse() calls FspDriver::inputPhase() and
FspDriver::outputPhase() to make the code easier to read.