Reland^2: Create an abstraction for dexopt tasks am: 73c4f79b14 am: 63edae1f2a

Original change: https://android-review.googlesource.com/c/platform/art/+/1843654

Change-Id: I191426d49c53a797c4dc6d2a25454adfd3a40284