Common: fixed return values for two StrUtil::StringToInt functions
Common: corrected the logic of String::LeftSection() and RightSection()

This makes LeftSection and RightSection methods treat the whole string as one field if no separator was found, to comply to how FindSection now works.

Complements 58ebdab0e491d065debfdec9b445e02de97abb6b.
Engine: SystemImports uses std::map<String> instead of ccTreeMap
Engine: automatic stub loader for plugins

The stub loading routine parses the symbol definition *.stub file and registers API stubs if no plugin library was found. This allows to substitute any missing plugin with dummy symbols.

Stub file format defines the text file consisting of any number of lines. Every line declares a stub function and its return value; the return value may be either numeric value or 'nil' that defines either null-pointer or 'void', depending on how the function is used by script interpreter.
If no value is provided, 'nil' is used by default.

    function_name [numeric_literal | nil]

Numeric value is first tested as integer, then as float, therefore to force floating-point type of value one should always include the decimal separator, e.g. write "1." or "1.0" instead of just "1".
Engine: support for using "plugin args" as script function call stubs