Clean and consolidate export code #190

- Adds new (experimental) Lilypond export
- The HasBackend... classes will be factored out and used for all
  backends of course