Added save as functionality to UI

This is wrong.  You need to do `callback(someErrorString)` if they don't give a filename.