Generates a hash from the given input (could be even object or function).

Useful when you want to listen on "useEffect" with an object as a dependency. Be careful as this method could be quite slow, even it's somehow optimized.