Sort buttons depend directly on available sort methods
pvr: Fix crash when opening PVROSDChannels while playing a recording

This fixes a crash when sending the action XBMC.ActivateWindow(PVROSDChannels)
to open the channel view while playing back a PVR recording.

 0  0x00007ffff0d2b037 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
 1  0x00007ffff0d2e698 in __GI_abort () at abort.c:90
 2  0x00007ffff0d23e03 in __assert_fail_base (
    fmt=0x7ffff0e7a578 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
    assertion=assertion@entry=0x10e09c9 "px != 0",
    file=file@entry=0x10e06f8 "/usr/include/boost/smart_ptr/shared_ptr.hpp",
    line=line@entry=424,
    function=function@entry=0x119ede0
      <_ZZNK5boost10shared_ptrIN3PVR11CPVRChannelEEptEvE19__PRETTY_FUNCTION__>
      "T* boost::shared_ptr<T>::operator->() const [with T = PVR::CPVRChannel]")
      at assert.c:92
 3  0x00007ffff0d23eb2 in __GI___assert_fail (assertion=0x10e09c9 "px != 0",
    file=0x10e06f8 "/usr/include/boost/smart_ptr/shared_ptr.hpp", line=424,
    function=0x119ede0
       <_ZZNK5boost10shared_ptrIN3PVR11CPVRChannelEEptEvE19__PRETTY_FUNCTION__>
      "T* boost::shared_ptr<T>::operator->() const [with T = PVR::CPVRChannel]")
      at assert.c:101
 4  0x00000000006db05e in boost::shared_ptr<PVR::CPVRChannel>::operator-> (
    this=<optimized out>) at /usr/include/boost/smart_ptr/shared_ptr.hpp:424
 5  0x000000000103af4d in PVR::CGUIDialogPVRChannelsOSD::Update (
    this=this@entry=0x1fe2a40) at GUIDialogPVRChannelsOSD.cpp:183
 6  0x000000000103b2fd in PVR::CGUIDialogPVRChannelsOSD::OnInitWindow (
    this=0x1fe2a40) at GUIDialogPVRChannelsOSD.cpp:105
 7  0x000000000080e3f9 in CGUIWindow::OnMessage (this=this@entry=0x1fe2a40,
    message=...) at GUIWindow.cpp:546
 8  0x00000000007f25ab in CGUIDialog::OnMessage (this=0x1fe2a40, message=...)
    at GUIDialog.cpp:103
 9  0x00000000007f222e in CGUIDialog::DoModal_Internal (this=0x1fe2a40,
    iWindowID=10610, param=...) at GUIDialog.cpp:185
 10 0x00000000008145ea in CGUIWindowManager::ActivateWindow_Internal (
    this=this@entry=0x16e5df0, iWindowID=iWindowID@entry=10610, params=...,
    swappingWindows=swappingWindows@entry=false) at GUIWindowManager.cpp:405
 11 0x000000000081496f in CGUIWindowManager::ActivateWindow (this=0x16e5df0,
    iWindowID=iWindowID@entry=10610, params=...,
    swappingWindows=swappingWindows@entry=false) at GUIWindowManager.cpp:353
 12 0x0000000000ae56ac in CBuiltins::Execute (execString=...)
    at Builtins.cpp:394
 13 0x0000000000bda289 in CApplication::OnAction (this=this@entry=0x16e1070,
    action=...) at Application.cpp:2502
 14 0x0000000000d78e08 in EVENTSERVER::CEventServer::ExecuteNextAction (
    this=this@entry=0x2c3d9c0) at EventServer.cpp:353
 15 0x0000000000bdc9ba in CApplication::ProcessEventServer (
    this=this@entry=0x16e1070, frameTime=frameTime@entry=0.0400000028)
    at Application.cpp:3039
 16 0x0000000000bdd326 in CApplication::FrameMove (this=0x16e1070,
    processEvents=<optimized out>, processGUI=<optimized out>)
    at Application.cpp:2838
 17 0x0000000000c521f2 in CXBApplicationEx::Run (this=this@entry=0x16e1070)
    at XBApplicationEx.cpp:140
 18 0x000000000071d5d7 in XBMC_Run (renderGUI=<optimized out>) at xbmc.cpp:69
 19 0x00000000006dba7e in main (argc=1, argv=0x7fffffffdff8)
    at xbmc/main/main.cpp:76
[win32] remove "Debug" and "Release" as build solution as we always use "Debug (directX)" and "Release (DirectX)"
CharsetConverter: add UTF-8 <-> UTF-32 and UTF-32 <-> wide conversion functions
CharsetConverter: add convenient overloads to new conversion functions
Faster string comparison functions in StringUtils

The methods EqualsNoCase(), StartsWith() and EndsWith() required quite a lot
of unncessary creation and destruction of std::strings, whether it be the
creation of a temporary copy that could be forced to lower-case, a temporary
copy that was a substring of one of the inputs, or just marshalling a
string literal argument into a std::string.

These functions don't appear to be used all that much at the moment; when I
profiled opening the songs library, I saw only a 1% improvement, which was
within the sampling noise threshold. But with PR #3225 and PR #3290 coming
along, that looks set to change. Once the functions are being called millions
of times, those heap operations really start to get noticeable.

Also, split StartsWith() and EndsWith() into multiple separately-named
functions, according to case sensitivity. Formerly, there was an optional
parameter (default off) to indicate that these operations were
case-*sensitive*, which is actually computationally simpler to perform. Now
the naming convention is consistent with EqualsNoCase:
  StartsWith       - case-sensitive
  EndsWith         - case-sensitive
  StartsWithNoCase - case-insensitive
  EndsWithNoCase   - case-insensitive

With the case-sensitive versions now easier to type, it will hopefully
encourage future developers to use them in preference.
Merge pull request #3292 from bavison/faster_string_comparisons

Faster string comparison functions in StringUtils
Merge pull request #3272 from MartijnKaijser/win32_remove

[win32] cleanup VS2010 build solutions
Merge pull request #3137 from jmbreuer/upstream-sortby

Differentiate between "unsorted" and "unsortable"
gles, fixed, more missing code
Merge pull request #3317 from Karlson2k/charsetconverter_rework_02

CharsetСonverter rework - Part 2
Merge pull request #3263 from fetzerch/bugfix-osdchannels

pvr: Fix crash when opening PVROSDChannels while playing a recording
[win32] update package list