Added support for view criteria metadata microlanguage. FEATURE.

Example:

    Red Example Score (2013) - materials

       1: instrumentation (AE)
       2: magic numbers
       3: pitch range inventory (AE)
       4: tempo inventory (AE)
       5: time signatures

          materials - copy (cp)
          materials - new (new)
          materials - remove (rm)
          materials - rename (ren)

    > vap

    Red Example Score (2013) - materials - select view to apply:

       1: autoeditable

    > 1

    Red Example Score (2013) - materials (autoeditable)

       1: instrumentation (AE)
       2: pitch range inventory (AE)
       3: tempo inventory (AE)

          materials - copy (cp)
          materials - new (new)
          materials - remove (rm)
          materials - rename (ren)

    >

The 'autoeditable' view is defined this way:

    view_inventory=datastructuretools.TypedOrderedDict(
        [
            (
                'autoeditable',
                iotools.View(
                    ['md:use_autoeditor']
                    ),
                ),
            ]
        )

The definition is just the string 'md:use_autoeditor'.

How does this work?

The IDE replaces the (sub)string 'md:use_autoeditor' with the metadatum value
for 'use_autoeditor' in each package. The corresponding string is then
evaluated to determine whether the package should appear in view or not.

So ...

    'md:use_autoeditor' ==> 'True' ==> eval('True') ==> True

... or ...

    'md:use_autoeditor' ==> 'False' ==> eval('False') ==> False

... or ...

    'md:use_autoeditor' ==> 'None' ==> eval('None') ==> None

... depending on the package in the question.

Note that criteria like 'not md:use_autoeditor' also work.

Indeed even criteria like ...

    "not md:output_material_class_name.contains('Maker')"

... work because evaluation will proceed ...

    "not md:output_material_class_name.contains('Maker')"

    ==>

    "not 'TaleaRhythmMaker'.contains('Maker')"

    ==>

    eval("not 'TaleaRhythmMaker'.contains('Maker')")

    ==>

    False

The magic is all in the 'md:' string.

Similar affordances will be added for asset display string and asset path.