Search Caching

Fixes #18.

The search function now hashes the collection name and stores it as the containerID, allowing the system to check if the search has already been executed and just redirect to that page, instead of recreating the search.
theoretically SingleOrDefault?()