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)