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 :(
I have no idea! Uncomment this line locally and run the test ``test_clear_database``. If you can explain the traceback to me, I'll be glad to hear :) By the way: You can also replace the line by any print statement such as ``print repr(operation)`` or even ``print "lalala"`` but I think writing to /dev/null is at least a little bit better than writing to STDOUT.