[compilations] Add a compilation flag to MusicInfoTag, and Album, add to views and set as needed in the tag readers. Add DB update code -- NO BACK COMPAT
[compilations] New functions to deal with Compilations instead of using the Various Artists tag and update the DirectoryNodes
[compilations] Remove old *VariousArtists* functions now we have compilation support
[optimisation] Optimize the ArtistsNav query
[helpers] add helpers for retrieving albums or songs by artists and vice-versa
[fix] set the album id when setting a musicinfotag from an album
[infoscanner] Make the MusicInfoScanner work from the IDs of the added artists and albums rather than the names
Merge branch 'musicdb' of git://github.com/night199uk/xbmc into night199uk-musicdb

* 'musicdb' of git://github.com/night199uk/xbmc:
  [infoscanner] Make the MusicInfoScanner work from the IDs of the added artists and albums rather than the names
  [fix] set the album id when setting a musicinfotag from an album
  [helpers] add helpers for retrieving albums or songs by artists and vice-versa
  [optimisation] Optimize the ArtistsNav query
  [compilations] Remove old *VariousArtists* functions now we have compilation support
  [compilations] New functions to deal with Compilations instead of using the Various Artists tag and update the DirectoryNodes
  [compilations] Add a compilation flag to MusicInfoTag, and Album, add to views and set as needed in the tag readers. Add DB update code -- NO BACK COMPAT
  [song genres] switches song table to full genre list and full genre link tables
  [album genres] Switch album table to use full genre strings + full genre links
  [song artists] use full artist string in the song table and link all individual artists via the song_artist table
  [album artists] switches album table to have full artist string, and adds new album_artist link table
  [fix] Join not required as the fields are both std::vector<std::string> anyway

Conflicts:
	xbmc/playlists/SmartPlayList.cpp
fix GetArtistsNav query
cec: libCEC 1.7.1 support and fixes. libCEC 1.6.1+ is needed when using firmware v2 on the CEC adapter, which adds wake over CEC
  * added a new setting to control whether to put the TV in standby when the player is put in standby.
  * added some button mappings: all menu related buttons -> menu, previous channel -> teletext, added support for the channels list on samsung, mapped next fav -> menu (when available)
  * display the firmware version and firmware revision date in the peripheral manager (if available)
  * handle the new CEC alert callback (libCEC 1.6+)
  * replaced 'Put this PC in standby mode when the TV is switched off' with an enum that allows the user to chose between 'Ignore', 'Suspend' and 'Shutdown'
  * display a warning if the port cannot be opened because of permission problems or when the port is busy
  * map NEXT_FAVORITE, DOT and AN_RETURN to XINPUT_IR_REMOTE_TITLE (context menu)
  * added libCEC 1.7.0 support, which adds physical address autodetection for AMD graphics cards, and some nVidia cards on Linux. when the address is autodetected, then the 'HDMI port number' and 'connected to HDMI device' settings will be hidden
  * fixed - crash when changing settings without libCEC started.
  * fixed - range of wake and power-off devices
  * fixed - update the correct standby device setting ('standby_devices' not 'wake_devices')
  * fixed - don't get the settings from the eeprom, but always use the settings provided in xbmc
  * fixed - ignore OnScreensaverDeactivated message if it was triggered by a shutdown/suspend command. If the screensaver is activated and hence the tv is in standby, a shutdown command will first deactivate the screensaver and then start the shutdown. The tv will be turned on but immediately send a standby command which may be ignored if it is still powering on.
  * fixed - don't crash when XBMC was compiled with libCEC support, but libcec.dll/.so/.dylib can't be loaded. display a kaitoast warning instead.
  * fixed - re-check the menu language and audiosystem status after the user changes settings
  * fixed - keypress handling. handle diagonal buttons properly
  * fixed - include system.h in Peripheral.h, or HAVE_LIBCEC may not be defined
  * fixed - don't reinit the connection when libCEC detected that the connection was lost, but just display a warning message. the OS will detect that the device has been removed and will already close the connection
  * fixed - ensure that the callbacks are reset to NULL before setting them
  * win32 - pthreadVC2.dll is no longer needed and not included in the zip anymore, so don't try to copy it
peripherals: call OnDeviceRemoved() before destructing a device when the device was unplugged
nyxboard: map the 'power' button on the nyxboard
jsonrpc: fix invalid minimum integer/number value in simple union types
jsonrpc: set "lastplayed" to current datetime when updating "playcount" through VideoLibrary.SetFooDetails
Merge pull request #1094 from pieh/cond_includes_home

home.xml existence testing
Merge pull request #956 from pieh/partially_watched_fixes
fixed: We should only URL encode characters that should indeed be URL encoded according to RFC1738
fixed: Handling of URL encoded stacked files was broken in some places
updated: List of internet protocols + removed MMS from HTTP translation list (done through ffmpeg now)
changed: No longer need to translate for ftp