Added widget move via drag and drop
Minor cleanup
Refactored drag and drop into a separate file, for sanity
Factored out customise viewmodel to a new file

For sanity