CURL::Decode: rewrite, add log for invalid input
CURL::GetDirectorySeparator: fix: don't use IsLocal() as files on localhost are not on local filesystem; add GetDirectorySeparator2() and update usage of GetDirectorySeparator
CURL::SetOptions: small optimization
[win32] undef GetUserName for URL.h
CURL::SetProtocolOptions: small optimization
CURL::GetWithoutUserDetails: small optimization
CURL::IsFileOnly: separate Win32 and POSIX cases
CURL::IsFullPath: refactoring, separate Win32 and POSIX cases
CURL: rename GetTranslatedProtocol() -> GetBaseProtocol() and TranslateProtocol() -> BaseProtocol(), remove CStdString
CURL::BaseProtocol: fix: comparison must be caseless
CURL: *Option() and *ProtocolOption() - remove CStdString, small fixes