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

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

Change-Id: Ibd8fc18966d7f4b827321c2cc33bae9a3d314f8d