Sync list props behavior between Java and C++

C++ list props will have type std::vector<std::optional<element_type>>
which can have std::nullopt as an element, just like null on Java. And
empty list/vector(not null/std::nullopt) will be returned when sysprop
value is empty.

Bug: 80125326
Test: mma -j && sysprop_test
Change-Id: Ia638636a7dbf4c96443ee36c746408f0ba8e34e4
4 files changed