[pvr] setting: enable option 'Close channel OSD after switching channels' by default
added space before format macros for c++11 compat

without a space after " compilation with -std=c++11 fails, because it
assumes the macro to be a string suffix, which it does not know / which is
invalid, because it doesn't start with a underscore
explicit boost:: namespace for c++11 compat

c++11 introduced a std::shared_ptr. With using namespace std and boost the
declaration without explicit namespace is invalid
shared_ptr comparisions to nullptr for c++11

c++11 supports explicit operator bool, which is used by newer boost if
c++11 is enabled, breaking the implicit conversions. A comparision to NULL
is used instead
[appmessenger] make ThreadMessage's parameters signed integers
[uriutils] adds URIUtils::IsProtocol() and use this in URIUtils::IsFoo() for testing URL protocol equivalence
[url] adds CURL::IsProtocol() and CURL::IsProtocolEqual() static and use these for testing protocol type.
[url] adds CURL::IsFileType() for case-insensitive extension comparison
[uriutils] have HasParentInHostName, HasEncoded(Host|File)name take a CURL
[url] drop unused CURL::TranslateProtocol()
[url] drop unused ancient protocol mem#://
[uriutils] adds URIUtils::PathStarts() for comparing the start of a path (more than just protocol) and URIUtils::PathEquals() for comparing the whole thing.
[url] adds IsURL/IsPath wrappers for CFileItem
StringUtils::Tokenize: clarify, simplify and optimize
1. pos must be string::npos when lastPos=string::npos, so no need to check pos != string::npos in the while condition. A != a || B != b = !(A==a && B==b) = !(B==b) = B != b
2. as pos needn't be in the condition, it mayaswell be in the while loop.
3. rename variables to reflect what they do.
[videodb] remove unused CVideoInfoTag::m_strShowPath
[cosmetics] indenting
[videodb] no need to set empty scraper/content when adding a path (they're empty anyway)
[videodb] adds ClearBookMarksOfFile taking idFile rather than path
[videodb] adds GetDbId() wrapper of GetSingleValue() for returning integer values (or -1 if not found)
[videodb] DeleteMovie/MusicVideo/Episode should primarily take database id, not path