[vfs] CFile: remove 'virtual' from destructor
no class is derived from CFile
[3d] added 3D subtitle depth
Revert "[nfs] - better fix for fe97d68f87d6985b2bf57d8e942b36b5e7373066 - possibly fixes #14727 - thx jm for the idea :)"

This reverts commit dd4dd2e91bc083a23fe7b46ae4c291c6672d32e0.

This commit created issues comparing paths when the export and the path was the same and did not contain a trailing slash, in addition, it removed the correct reversal of ordering of m_exportList generated by GetExportList.

Reference: http://trac.xbmc.org/ticket/14727#comment:12
[Confluence] move buttons to the right side, improve navigation
StringUtils: add "isasciidigit", "isasciixdigit", "asciidigitvalue", "asciixdigitvalue", "isasciiuppercaseletter", "isasciilowercaseletter" and "isasciialphanum" for locale-independent ASCII operations
RegExp: add automatic UTF-8 mode based on given regular expression
Usage of RegExp: change from forced UTF-8 mode to new automatic UTF-8 mode
XBMCTinyXML: use new RegExp constructor
ScraperParser: add new attribute "utf8" for scraper RegExp, works similar attribute "cs", possible values "yes", "no", "auto" ("auto" by default)
[nfs] Fix library syncing (trac #14727) for edge-cases resulting from less-common NFS export configurations partially resulting from recent CStdString conversion.

Squashed commit of the following:

commit 1cd13db9822a5a609c232a614e67c361ca260f2d
Author: Nigel Jones <nigel@nigelj.com>
Date:   Sun Dec 8 02:47:08 2013 +1300

    [nfs] Recommendation from PR 3772 by jmarshallnz for code cleanup implemented avoiding the substr routine.

    exportPath is only set if a valid export is found.

commit be9d0b0aa42b4710a5005824c1d04f1a69120cbc
Merge: a43d406 d32ff6e
Author: Nigel Jones <nigel@nigelj.com>
Date:   Sat Dec 7 03:09:32 2013 -0800

    Merge pull request #1 from Memphiz/nfsfix-14727

    [nfs] - handle special case when "/" is exported via nfs - we need to al...

commit d32ff6e89bde24909fbf7e97acf0bfa5a8ae5ac7
Author: Memphiz <memphis@machzwo.de>
Date:   Fri Dec 6 23:35:48 2013 +0100

    [nfs] - handle special case when "/" is exported via nfs - we need to allow empty pathes here when accessing nfs://ip/ (path is empty here - export is "/").

commit a43d40673887965041939181dab8dcd077049c92
Author: Nigel Jones <nigel@nigelj.com>
Date:   Sat Dec 7 00:27:49 2013 +1300

    [nfs] - Ensure that the right export is picked if multiple overlapping names may match with StartsWith.

commit 61fb6f567f0a229c1869bbb76524706914574ba9
Author: Nigel Jones <nigel@nigelj.com>
Date:   Fri Dec 6 23:44:03 2013 +1300

    [nfs] replacement fix for dd4dd2e91bc083a23fe7b46ae4c291c6672d32e0 (issue #14727).

    If the exportPath is the same as the path is then bypass the substr methods, and return the correct relativePath.
Merge pull request #3772 from nigeljonez/nfsfix-14727

[nfs] Fix syncing issue from Trac #14727
LinuxRendererGL: make sure we have a shader defined
HttpHeader: fix: parse header properly according to RFC 2616
* use 'tab' as whitespace as well as 'space'
* process header lines divided to several lines with whitespace
HttpHeader::GetMimeType: fix: trim whitespace chars according to RFC2616
HttpHeader::GetCharset: fix: properly find charset according to RFC 2616
* detect more than one whitespace
* use 'tab' as whitespace
* allow charset to be quoted
Change the string comparison in CGUITextLayout::UpdateW to be case-sensitive

It seems likely that it was only case-insensitive due to the the default
seting of CStdStr::Equals. It's unlikely that you'd ever want to update a
string with another which is the same except for the case of one or more
characters, but if you did, I doubt you'd want to use the cached version if
so. And you're slowing down the comparison in all other cases to achieve that
dubious behaviour.
Add caching of text labels at the UTF8 level

Previously, CGUITextLayout::Update converted its string argument from UTF8 to
UTF16, then passed it to CGUITextLayout::UpdateW, where it was compared
against a cached copy of the string (in its UTF16 form). However, the
conversion itself was taking up a reasonable chunk of CPU time.

This patch adds a similar cache of the string in its UTF8 form to the Update
method, and splits the non-cache part of UpdateW into a separate function, so
we can bypass it the case where we've tested it against the UTF8 cache.

I have measured the effect while the Videos window of the default skin was
open (but idle) on a Raspberry Pi, and this reduced the CPU usage by 2.9%
from 39.1% to 36.2%:

          Before          After
          Mean   StdDev   Mean   StdDev  Confidence  Change
IdleCPU%  39.1   0.9      36.2   0.5     100.0%      +8.1%
Merge pull request #3785 from ronie/confluence-rightbuttons

[Confluence] move buttons to the right side, improve navigation
Merge pull request #3709 from bavison/cache_utf8_text

Add caching of text labels at the UTF8 level
Merge pull request #3562 from Karlson2k/vfs_update_small_02

[vfs] CFile: remove 'virtual' from destructor