Before works where stored using a complicated tree structure where each
part references its parent. Now it's a flat structure that keeps track
of the relations using a new field named part_level. The corresponding
query was simplified accordingly. Also, the updateWork function was
rewritten.
This includes tables for persons, instruments and works as well as some
queries and functions to work with them. The generated code should be
ignored by Git for now. I also added a section to README.md explaining
how to handle code generation.