Added useWeakReference option

To give developer option to use or not to use weak references on listeners, if developer wants to use it as he used to (with weak references) it will have no impact in his existing code, it will work just as before. But for developers who don't want to rely on Garbage Collection and rather do things manually, now they have an option to use new "Pomelo(false)" to set useWeakReference to false and destroy() for clean-up.