Global block cache

First stab at it.

Not sure if my assumptions of how `files.Set` for `protocol.LocalDeviceID` works, but since I never got a response to the email, I'll give you the opportunity to educate me here.

Haven't actually tested if it works apart from the tests...