Split metadata sourcing out of MetadataService.

Refactor by separating `MetadataService` into two parts:
`ItemCollectionLibrary` which handles sourcing metadata and organizing
collections of results, and `MetadataService` which renders results and
caches them.
Build identified collections from ItemTag values.

Resolves #17.