Per-cache fetch debounce

While reviewing the Akavache code to make sure that fetch requests aren't issued multiple times for inflight requests, I noticed a bug, where inflight requests share the same dictionary, which is Uncorrect. Also, this PR adds some tests around the fetch behavior and makes sure DownloadUrl follows the same behavior.