Database object

Serialization and deserialization now use a Project data object
instead of using just name and state.

Addresses issue #69