COOK-3071 Avoid reloading handler at each run

Using a cache for the source file of handler we are able to compare what is supposed to be loaded in chef context and the source of the handler.
To handle case where chef context has disappeared we try to load the class.
This technique works only if this provider is the only one to modify handlers context.