Save project client side

Covers https://github.com/KSHSK/WAVED/issues/100 and the Save portion of https://github.com/KSHSK/WAVED/issues/43. Save As will wait for now, because it would require changes to DataSet and server code that I didn't want to get into here. It's also not necessary right away and I think loading state after this is more important.