Revise IndexedPiece and TemplateIndexer to Allow Score as Input

There will be some cases where we want an entire stream.Score, not just
its Part objects.
Further Improvements to the TemplateIndexer API
Initial Addition of "harmony" and "key" Indexers

This is huge. Sorry. There are (some) tests!
Amend optional_requirements.txt

To comment tables until we actually use it, and to add (commented) a
build requirement for tables.
Initial addition of "lilypond" Indexer

No tests, but it's also unuseable for now.