Allowing models to support multiple languages

Note that there are edge cases where this diverges from O behaviour.
Specifically in the case where there is a more specific factory than
update model.
For example: system language is "en-us", factory model is v3 "en-us",
update model is v4 "en". In O, we would have selected the factory model,
now we select the update one.

This also fixes a bug that caused model versions to not get logged.

Test: Ran framework core tests, and tested manually.
Bug: 72427364
Change-Id: Ied35335512563e2cbaaeb5790b425b1e9fffbaa8
3 files changed