Add cancel parameter to Keys[Prefix]

@philips, I believe this is the same API as your PR #14, with a few tweaks to abide my particular style idiosyncrasies :) OK from your side? 
Are you sure? After I draw the last element I'll take from the keys channel, the Keys goroutine sits blocking [in this select](https://github.com/peterbourgon/diskv/blob/c4cd4b360c202b12b2adf3f805d5429d59b7c6f5/diskv.go#L374-378), with the next queued and waiting to go. Then I cancel, and, crucially, yield, which schedules the Keys goroutine and allows it to advance via the `<-cancel` clause.

I think. I hope. :) No?