[pvr] EPG hookdata: Return UniqueBroadcastID

Returns epgUid known by client instead unset data.
FIX: [linux] fix & optimize input device checking
[videodb] move AnnounceUpdate|Remove to statics
[announces] add 'transaction' attribution to OnUpdate, OnRemove if scanning.
drop unneeded tracking of database updating, using the 'transaction' attribute of OnUpdate/OnRemove instead
[epg] fix: SetChannel() methods do not correctly select the given channel
Split out IArchivable from Archive.h
Extend videodatabase GetTvShowInfo api

Add an optional FileItem *, this allows the retrieval of all the
properties from a tvshow, as some are only set when a fileitem is
available.

This allows the JSON-RPC GetTVShowDetails to return watchedepisodes, and
fixes this bug:
http://forum.xbmc.org/showthread.php?tid=191142
VDPAU: fix cropping for interlaced frames
VDPAU: fix segfault if vdpau fails to open context
paplayer: fix accidently disabled seek by fc2b1b2c1ad0d235b91a33e430d39bd63de71f58
Merge pull request #4561 from cg110/json_tvshows_watchedepisodes

Extend videodatabase GetTvShowInfo api
Merge pull request #3773 from Rawk/split_carchive_and_iarchivable

Split CArchive and IArchivable to seperate headers
Merge pull request #4649 from FernetMenta/vdpau3

VDPAU: fix segfault if vdpau fails to open context
HttpHeader::Parse: accept "\n" line ending as well
HttpHeader::Parse: fix parsing multiline parameter (used only in tests)
HttpHeader::GetHeader: (used only in tests) return empty string if got nothing and use standard "\r\n" line ending
HttpHeader::AddParam: fix overwrite for non-lowercase names
HttpHeader::AddParam: trim name and value like "Parse()"
HttpHeader::AddParam: fix trying to add empty value or name