avoid attempting mac-discovery for internet addresses
Don't display blank SMB workgroups.
FIX: avoid waiting forever on a locked CPluginDirectory while exiting
FIX: Consistenly look for fonts in special//home, then special://xbmc
Sort buttons depend directly on available sort methods
Implement seek for CDDA
Python: Add a DelayedCallGuard to xbmc.executeJSONRPC.

Avoids locking other python threads running on the same process space as XBMC, since executeJSONRPC may trigger activity on them.
FIX: [stagefright] ignore frames with no valid pts
[Fix] Event server code for remote mouse with event client protocol
fix #3166: use URIUtils::AddFileToFolder
SysInfo: add "GetBuildTargetCpuFamily" function
SysInfo: add "GetXbmcBitness" function
SysInfo: refactoring IsOS64bit->GetKernelBitness, extend support for all platforms
Startup log: write information about target CPU; XBMC and OS bitness
Startup log: report number of CPU cores
Settings: remove unused setting
Faster sorting of CFileItemLists, step 1

CFileItemLists are sorted by first construcing a SortItems object that refers
back to each CFileItem by index, sorting the SortItems object, then rebuilding
CSortItemList::m_items (a vector of pointers to CFileItems) by examination of
the sorted version of the SortItems object.

It might be more sensible, long-term, to sort m_items directly, but in the
meantime, there are a couple of simple ways to make sorting with SortItems
sufficiently efficient that it's not a problem any more.

Previously, SortItems was a vector of SortItem objects, held by value; each
SortItem was a std::map (implemented as a red-black tree) which ended up
being constructed and destructed as each element of SortItems was moved.
This patch changes SortItems to be a vector of pointers to SortItems instead.

Benchmarks for CFileItemList::Sort() on a Raspberry Pi with a library of
600 movies:
Before patch: 4.6 seconds
After patch:  1.1 seconds
Faster sorting of CFileItemLists, step 2

Each time a CFileItemList is sorted, multiple SortItem objects are
constructed and destructed. Each object is a std::map ,implemented as a
red-black tree with one node for each attribute (Field) upon which the
CFileItemList could conceivably have been sorted, even though for any given
SortBy, very few attributes are actually examined by SortUtils::Sort(). Worse
still, many of those nodes involve creating an associated fresh copy of a
string, with all the associated heap thrashing that entails.

This patch changes the various ToSortable methods to limit the number of
items in each SortItem's std::map to those actually required for performing
the chosen sort.

Benchmarks for CFileItemList::Sort() on a Raspberry Pi with a library of
600 movies:
Before patch: 1.1 seconds
After patch:  0.36 seconds
[LangCodeExpander] Early return from methods if the string being looked up or converted is empty.
FIX: Do not remove internet files from video db only because they come from a disappeared source