Actually use repr instead of id

When memoizing an instance method, the documentation mentions the `sqlalchemy` example and says the cache key is created using `repr(self)`. Yet the code does use `id`. This PR fixes it.

The code does mention the possibility of having a `__cacherepr__` method, this sounds even better because then it's explicit.