TimeTypes #167

- Restored meta-data extract functions etc

Full restoration is going to be slightly more tricky.

We now have two meta-modules: 'Meta' which defines the Meta type, the HasMeta class and
some utility functions. This depend on Music.Time (uses Note and Reactive etc). However
the Meta type (and at least a primitive version of the Reactive type) must be moved above
all modules in Music.Time, which creates a recursive dependency...

(On a related note, all time types should be factored out to a Music.Time.Internal
hierarchy, and then packed up with Meta in Music.Time.)

Possible solutions:

  * Factor out Meta so that it does not use Reactive (instead wrap that along with everything else). Use the TAttribute trick from Diagrams to get proper transformations etc.

  * Replicate the Music.Time types (Voice, Score) in Music.Score but *with* meta-data

  ??