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.
I would avoid using string literals like this. If you ever want to change that, it will be difficult to accomplish. The better way would be to use an enumeration of some kind, null, or if you must use a string literal, extract it into a static class as public member and reference it that way