Database (De)Serialize Object instead of State

Serialization and deserialization now use a Project data object
instead of using just name and state.
Moved project (de)serializer creation to connect

Instead of having to create a (de)serializer for a project
in every function that handles database transactions the
(de)serializer was moved into connect.php which also
creates the database connection.
Upload a data file. Need to fix projectName being supplied
Work for supplied project name
Save project after file upload.
getAll method for deserializing project objects

Replace listId with getAll to avoid naming ambiguities (listId
returned all the names) and enable future support for displaying
more information on the load screen. Current load functionality
was kept by trimming the objects back to the name for now. Various
comments added throughout, especially with regards to object
(de)serialization.
start of bound data code
Hide buttons when boundData undefined
Bind data popup. Binding not working
Bind data working; fixed issue with WidgetViewModel inheritance.
Display name and filename for bound data
Increment ref count
Unbind data
Rename LoadData to UploadData
Read file contents after uploading data
Mark files for deletion
Only display datasets that aren't marked for deletion.
Deletion of project

Ability to delete a project by name, including both
database and filesystem entities.
Added Upload button on Bind Data dialog
Merge branch 'master' into database-object