Make Clock thread safe.

Makes the clock thread safe, changes the hash, cleans it up a bit, and adds docs. See https://github.com/kivy/kivy/wiki/Kivy-clock-experiments for more details.
When i was optimizing the FileChooser before, i did used `id() & xxx` as a hash value. But i don't remember why i didn't keep it. Let's hope there is no race condition behind it.