Implement changes from car api review of CarHvacManager

- Add @IntDef for all enums
- Split CarHvacProperty into corresponding Config and Value classes;
- Use java types to represent vehicle value type in API;
- Use generics for different property types;
- Add documentation to clarify behavior
- Allow multiple listeners to register for callbacks
- Remove @SystemApi tag from CarHvacEvent class
- fixed CarHvacManagerTest and vehicle hal mocking
- Added unit tests for CarPropertyConfig and CarPropertyValue

BUG: 27814691, 27900797, 27142682
Change-Id: Ic860b4ef4ff87db1babde21226ec35ac81f77cea
23 files changed