Changed lastAdded to a stack of elements so we don't lose our canvas positioning

Now, if you add widgets
A B C D E
remove E, add F, it is placed after D (instead of at the same place as A)

Though it'll probably get a little messy (layout wise) after cherry-pick-removing elements, it'll still not just place things back at the start if the tail widgets are removed.

This incorporates the simple lastAdded fix (though the change disappears, allows this to merge more easily)