Refactor OatFileAssistant to allow it to function without a runtime.

After this change, OatFileAssistant accepts an optional input
OatFileAssistant::RuntimeOptions, and when the input is provided,
OatFileAssistant can function without a runtime.

Also:
- Update tests to verify that OatFileAssistant works properly with and
  without a runtime.

Bug: 233383589
Test: atest art_standalone_runtime_tests:OatFileAssistantTest
Change-Id: Ie828a37f5f3c0843cf33cc40b07420eba0ee6dd0
15 files changed