DataSet, data upload, and data binding

This covers https://github.com/KSHSK/WAVED/issues/33, https://github.com/KSHSK/WAVED/issues/96, https://github.com/KSHSK/WAVED/issues/97, and https://github.com/KSHSK/WAVED/issues/105

This does not cover checking if bound data is in use before unbinding it or actually deleting marked files on project load.