Speed improvement for opening the movies library

On all but the first time of opening the movies library, the CFileItemList
is built using CArchive. A large proportion of the time taken to do this is
actually spent in CVideoInfoTag::Archive() where it calls
CScraperUrl::Parse() and CFanart::Unpack(). Unless I've overlooked something,
these calls are unnecessary - the XML parsing they do is not performed the
first time the movies library is opened (when instead the virtual directory
videodb://movies/titles/ is enumerated using a database query). Also, the
Parse() method is called again when you do something like open the Movie
Information window, irrespective of whether it was called when the library
was opened.

Also note, it is unusual for any implementation of IArchivable::Archive() to
do anything other than read or write a data member from/to a CArchive, so
these calls to Parse() and Unpack() feel like an anomaly.

Additionally, inserted a call to std::vector::reserve() before reading the
cast list, because it was an obvious speed win.

Here are some benchmarks for the function CGUIMediaWindow::GetDirectory()
on a library of 600 movies, running on a Raspberry Pi:
* First call (before or after):    3.4 seconds
* Subsequent calls (before patch): 7.3 seconds
* Subsequent calls (after patch):  2.9 seconds
ffmpeg: add swr_set_compensation to interface
ActiveAE: use swr_set_compensation for changing resample ratio
filesystem: fixup redirected exists checks (they would never return true)
CFile: some cosmetics
Merge pull request #3233 from bavison/faster_videoinfotag_archive

Speed improvement for opening the movies library
set focus to the first non-disabled control
disable spin controls with only one entry
[cosmetic] rename non-member var
[Fix][StringUtils] Prevent infinite loop or crash.

Example:

  std::string rep = "1";
  StringUtils::Replace(rep,"",""); //infinite loop
  StringUtils::Replace(rep,"","1"); //crash std::bad_alloc
Merge pull request #3255 from ace20022/fix_replace

[Fix][StringUtils] Prevent infinite loop or crash.
Merge pull request #3240 from FernetMenta/aefixes

ActiveAE: fix setting resample ratio
paplayer: fix flac 7 and 8 channels
[externalffmpeg/osx/ios] - fix compile after 429ce9bc69cdee21d3f3be23c1f7147f25b42db6
ActiveAE: fix hang if stream provided data which was no multiple of framesize
ActiveAE: fix remap for channels greater 8
jsonrpc: fix Playlist.Add/Insert not working with "directory" (fixes #14578)
jsonrpc: cosmetics in JSON schema
Fix CURL::RemoveProtocolOption

Actually remove the option from m_protocolOptions and not m_options.
Merge pull request #3260 from tru/fix_protocoloptions_remove

Fix CURL::RemoveProtocolOption