= caching, can, io: migrate all occurences of System.currentTimeMillis to nanoTime, fixes #275

I find this whole time-as-Long business very fragile. In the best case we could use `scala.concurrent.Deadline` which would probably cover most of these cases. However, `Deadline` has no infinite element so that we could use it at the places where there's a timeout only sometimes.