[for review] new features

I added a couple of new features and test cases. Introducing them, I restructured the code quite heavily to make it easier for me to work with it -- please consider this only as a proposal / starting point for discussion. Maybe it turns out to simplify things for others, too, maybe it doesn't.
Major additions:
- hyphen placement in the middle between the syllables of the lyrics (this depends on a minor change in Vex.Annotation found in vexflow_overrides.js) - I think it would be nice to add this feature to VexFlow, but I'm not sure if it can be implemented there well, because it depends on knowledge of whole staff lines, not only single measures
- enhanced the measure width calculation (if the width of a measure is specified in the MEI file, this width is used, all other measure widths are calculated just like before)
- added support for layout specifications in the MEI file (margins, system spacing, scaling etc. -- the scaling doesn't work with Raphael.js. Maybe there is a better way to deal with it in Raphael. Raphael generally is horribly slow when rendering my biggest MEI file, 15s vs less than 1s.)
- added a basic way to render the pgHead content on the canvas, including multiple rend specifications in one line, but currently without support for more complex layouts.
- added support for staffGrp/@barthru
- introduced a way to handle general options: Settings passed to the constructor override all other settings, second are settings in the MEI file. If a property is neither specified in the constructor options nor the MEI file, the script reverts to default values -- which eventually could be taken from an ODD, but that's not implemented yet.