Android: Add GcStateAssert class to ensure destroy() is called on objects

Remove finalizer in SQLiteCursor.java to test it out.

android-binary-size trybot shows the abstraction adds zero overhead with r8
Also contains a -checkdiscard to ensure it doesn't regress.

Bug: 149440
Change-Id: If9cd57c140a334e31c126f5b295c583c78302e92
Reviewed-on: https://chromium-review.googlesource.com/c/1347440
Commit-Queue: agrieve <agrieve@chromium.org>
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Sam Maier <smaier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623826}
6 files changed