Reimplemented Memoize decorator.

In this commit the systemtools/Memoize.py classfile contains both the old
implementation (commented-out) and the new implementation.

The new implementation subclasses built-in dict.

Two uses of the new Memoize implementation had to be removed from the parser:

    # decorator appears not to work with input arguments
    #@systemtools.Memoize
    def _span_event_name_to_spanner_class(self, name):

    # decorator appears not to work with input arguments
    #@systemtools.Memoize
    def _test_scheme_predicate(self, predicate, value):

As the comments indicated, the problem appears to the input arguments passed to
the methods. Which is odd. Because the new Memoize implementation looks like
it should accomodate (positional) input arguments (though probably not
keyword arguments).

The remaining six calls to the Memoize decorator in the parser are left in tact
in this commit:

    @classmethod
    @systemtools.Memoize
    def _get_scheme_predicates(cls):

    @property
    @systemtools.Memoize
    def available_languages(self):

    @staticmethod
    @systemtools.Memoize
    def list_known_contexts():

    @staticmethod
    @systemtools.Memoize
    def list_known_dynamics():

    @staticmethod
    @systemtools.Memoize
    def list_known_grobs():

    @staticmethod
    @systemtools.Memoize
    def list_known_languages():

All of these work because the decorated methods are zero-arity.

Note however that Sphinx now issues four warnings when building the mainline
API:

    abjad$ ajv api -M
    < ... snip ... >
    sphinx-build -b html -d build/doctrees   source build/html
    Running Sphinx v1.2
    WARNING: Abjad no longer supports versions of Python less than 2.7.3!
    WARNING: Please upgrade your version of Python to 2.7.3 or higher!
    loading pickled environment... done
    building [html]: targets for 0 source files that are out of date
    updating environment: 0 added, 2 changed, 0 removed
    reading sources... [100%] api/tools/systemtools/Memoize
    /Users/trevorbaca/Documents/abjad/abjad/docs/source/api/tools/lilypondparsertools/LilyPondParser.rst:104: WARNING: error while formatting arguments for abjad.tools.lilypondparsertools.LilyPondParser.LilyPondParser.list_known_contexts: {} is not a Python function
    /Users/trevorbaca/Documents/abjad/abjad/docs/source/api/tools/lilypondparsertools/LilyPondParser.rst:107: WARNING: error while formatting arguments for abjad.tools.lilypondparsertools.LilyPondParser.LilyPondParser.list_known_dynamics: {} is not a Python function
    /Users/trevorbaca/Documents/abjad/abjad/docs/source/api/tools/lilypondparsertools/LilyPondParser.rst:110: WARNING: error while formatting arguments for abjad.tools.lilypondparsertools.LilyPondParser.LilyPondParser.list_known_grobs: {} is not a Python function
    /Users/trevorbaca/Documents/abjad/abjad/docs/source/api/tools/lilypondparsertools/LilyPondParser.rst:113: WARNING: error while formatting arguments for abjad.tools.lilypondparsertools.LilyPondParser.LilyPondParser.list_known_languages: {} is not a Python function
    looking for now-outdated files... none found
    pickling environment... done
    checking consistency... done
    preparing documents... done
    writing output... [100%] index
    writing additional files... search index
    copying images... [100%] examples/ferneyhough/images/ferneyhough.png
    copying static files... done
    copying extra files... dumping search index... done
    dumping object inventory... done
    build succeeded, 4 warnings.

The four methods in question are all staticmethods:

    list_known_contexts: {} is not a Python function
    list_known_dynamics: {} is not a Python function
    list_known_grobs: {} is not a Python function
    list_known_languages: {} is not a Python function

So these Sphinx errors can be suppressed in at least two different ways:

1. remove the decorator
2. reimplement the methods as instance methods instead of static methods

Haven't yet tested #2.

Note that the reason none of these details need to be considered in the Score
Manager is that all uses of the Memoize decorator there concern zero-argument
properties. (All of which are also private. Which means that Sphinx / decorator
interactions never arise.)