internal database package refactor

I added a new class ``CompositeOperation`` so that from the user's point of view the ``__call__`` of a sequence of operation works the same as just one operation. Nothing will change for the average user of SunPy, it's mainly a refactor to improve maintainability and code style in general. Unfortunately, the ugly hack couldn't be removed, only moved to a new location :(