Engine: ensure text parser does not modify the passed string argument

This is a temporary fix to let parser use immutable string arguments. This will do for now, but the whole text parser implementation should be reviewed in time.
Parser is called as a reaction to user input, so extra string copying should not be an issue here.
Common: refactored GUITextBox
Common: refactored GUISlider
Common: refactored GUIListBox
Common: refactored GUIInvWindow
Common: refactored GUILabel
Common: refactored GUIButton