Merge pull request #100 from scottchiefbaker/release-3.3.0

Fix an extern declaration of icon_xpm.
Removed -fpermissive from the compiler flags on all platforms using GCC. It is not necessary anymore since commit 071f6ce6d1435129276bb33d0b240a784756d44e.
Merge pull request #102 from scottchiefbaker/release-3.3.0

Use only one #define for getch() / rec_getch()
Engine: do not quit if the Game.ChangeTranslation() has failed
Common: fixed String::LeftSection()
Engine: fallback to previous translation if new one failed to load
Common: added Flush() method to Stream
Engine: replaced RawFileOutputTarget with LogFile class

When created LogFile may open file right away or delay doing this. In the latter case it will buffer output up to certain size limit. When told to open the file, it will first flush its buffer. This allows to log events even before the log path is decided (for example, before or during reading configuration and/or parsing command line).
Engine: basic log file setup

Write log file only if told to - either by command line argument or config file parameter.
Log file is created in a special directory defined by platform driver class.
Linux, Windows: implemented GetAppOutputDirectory()
Common: fixed String::TruncateTo* (argument range)
Fix build on mobile platforms.
iOS: Updated Xcode project.
Android, iOS, PSP: Implemented GetAppOutputDirectory().