Rewrite widget removal system

From #6651.

System now stores widget DOM in js when user clicks 'Remove Widget' button, makes AJAX request then throws up warning with option to undo. 

Undo widget restores widget DOM, with all original events intact and makes another AJAX request. 

Client does nothing with results of either AJAX call.