Optimize CEpgInfoTag. No more copies, just shared pointers.

@opdenkamp This is the EpgInfoTag optimization we discussed in #5629.  
I know this would start a discussion. ;-) I need the definition of CEpgInfoTagPtr here, but including epginfotag.h leads to weird compiler errors (at least with gcc). I (and others, even in the xbmc project - see here: https://github.com/xbmc/xbmc/blob/master/xbmc/pvr/timers/PVRTimerInfoTag.h#L51) have/had no other idea to solve the problem than by defining the type locally. I've learned in other projects I was involved in (e.g. OpenOffice.org/LibreOffice) that this is kind of common practice.

But for sure I would be really happy to get an advice how to do this "better".