'Register a new key mapping.
A key mapping is four functions, a getter, setter, deleter,
and lister. The key may be either a string or a glob pattern.
The getter, deleted, and lister receive an MP4Tags instance
and the requested key name. The setter also receives the
desired value, which will be a list of strings.
The getter, setter, and deleter are used to implement __getitem__,
__setitem__, and __delitem__.
The lister is used to implement keys(). It should return a
list of keys that are actually in the MP4 instance, provided
by its associated getter.'

@classmethod
def RegisterKey(cls, key, getter=None, setter=None, deleter=None, lister=None):

    key = key.lower()
    if (getter is not None):
        cls.Get[key] = getter
    if (setter is not None):
        cls.Set[key] = setter
    if (deleter is not None):
        cls.Delete[key] = deleter
    if (lister is not None):
        cls.List[key] = lister
