Basic refactoring to hide implementation

We may have to do this in chunks. A lot of library function
depends on the internal representation of Score/Voice/Track.
I started with score for simplicity. Manyfunctions use score while
Voice could have been used instead, I changed this for XML export etc.

The other combinators should be rewritten (in particular: `rev` and the zippers)

See #42