StaticDropPreviewElements

The viewport clients share a list of drop preview elements.However we still want the elements to be destroyed if all the viewports are destroyed, hence a static weak pointer and private shared pointers.