Generic staff model

There is now a generic staff class, which is a container of elements
with an encompassing bounding box. Specific types of staves (e.g., for
square-note notation or staffless neume notation, cwmn) inherit from the
generic staff class and add extra functions and member variables
specific to the notation system.

Fixes #75