Unit tests for the first batch of music library data structures

This builds on the work in #83, so when that is pulled, this pull request will in only consist of the last commit: 298f37a5311727ddf67c0e9816cd7cdf57cbe1a8.

The unit tests have been written with pytest. There is a bunch of test data in the start of the file, to get something real in there to test against.

Let me know what you think.