[Android] Fix the potential memory issue in XWalkPreferences

* Use WeakReference instead to make sure the key listener can be GC-ed
* Add unload internal method to remove the listener from the global list

BUG=https://crosswalk-project.org/jira/browse/XWALK-1613
Merge pull request #1894 from hmin/xwalk-preferences

[Android] Fix the potential memory issue in XWalkPreferences