Use a ParserDefinition struct for the Parsers.cpp

Any settings configurable can go in this struct. This allows the SettingsDialog to manipulate it easier since it can have a temporary copy of one for each language while the dialog box is open. If it needs a preview, use its own local copy. Also, the Parse_X functions really don't need access to any other fields in the Parser.
Move code, cleanups
Update Python_Parser.cpp

Seems to be ok for now. As the code progresses, more code may be found to be in common among the parsers. So this can be moved into the Parser() function