This commit fixes the Draw module. All buttons/widgets created via the Draw module in a SpaceScript area are now inserted into a global list attached to the SpaceScript data. This list is cleared before each draw, when freeing the space, and when the area is switched to another space.c This is necessary to prevent Blender's internal UI code from getting invalid pointers to python data. In addition, it allows storing widget tooltips inside the python Button objects, which solves that little bit of stupidity. Note that this reverts the previous weaklist solution. In fact, I had to go over each previous commit by Campbell after this code originally branched before the weaklist commit and re-add each commit. So if anything is missing, just tell me, or feel free to re-add it.