What is a metaclass in Python?