e495d1f74a
this is a clone of https://android-git.corp.google.com/g/#change,35174. if the cache is full to its capacity and if a new statement is to be cached, one of the entries in the cache is thrown out to make room for the new one. but the one that is thrown out doesn't get deallocated by SQLiteProgram because it doesn't know that it should. fixed this by having SQLiteProgram finalize its sql statement in releaseReference*() methods, if the statement is not in cache.