Optimize CEpgInfoTag. No more copies, just shared pointers.

@opdenkamp This is the EpgInfoTag optimization we discussed in #5629.  
Yes, it is. It creates a shared pointer instance pointing to a default constructed CEpgInfoTag instance, which is obviously different from a shared pounter instance pointing to null.

But indeed, then the name of this member function is misleading. Will change to "CreateDefaultTag".

https://github.com/xbmc/xbmc/blob/master/xbmc/epg/GUIEPGGridContainer.cpp#L905 creates a CFileItem instance with a default constructed CEpgInfoTag instance. The CFileItem implementation uses the presence of non-null EpgInfoTag to implement kind of poor-mans-rtti. Thus, not setting a non-null EpgInfoTag at the CFileItem is evil as the item wil never know its  real "type".

I would be happy for a hint how to solve this problem (with low effort) and to get rid of CreateEmptyTag.