Migrating metadata caching logic from metadata.MetadataBundle into
metadata.MetadataCachingJob.

This helps improve the granularity of the caching process, and will eventually
afford us the possibility of easy multiprocessing.


git-svn-id: http://music21.googlecode.com/svn/trunk@3559 5c16147e-a200-11de-b0cc-ab0ad15e60d0
Added doctest for MetadataCachingJob.


git-svn-id: http://music21.googlecode.com/svn/trunk@3560 5c16147e-a200-11de-b0cc-ab0ad15e60d0
MetadataBundle.addFromPaths now delegates parsing and metadata extraction to
MetadataCachingJob.


git-svn-id: http://music21.googlecode.com/svn/trunk@3561 5c16147e-a200-11de-b0cc-ab0ad15e60d0
MetadataBundle.addFromPaths() now uses multiprocessing.

Metadata for the 'core' corpus can be cached in approximately 30 minutes on a
4-core 2.6GHz Apple laptop with 8GB RAM.


git-svn-id: http://music21.googlecode.com/svn/trunk@3562 5c16147e-a200-11de-b0cc-ab0ad15e60d0
Reimplemented metadata.JobProcessor as a generator.

MetadataBundle can now write itself to disk every `n` processed corpus files.


git-svn-id: http://music21.googlecode.com/svn/trunk@3563 5c16147e-a200-11de-b0cc-ab0ad15e60d0