Use std::optional for nullable

AIDL now use std::optional to represent nullable types for efficiency
instead of std::unique_ptr which might cause additional heap allocation.

Bug: 1447732670
Test: m
Merged-In: I9045bc6fc2eb06839203af6db94a80de9b83ad1f
Change-Id: I9045bc6fc2eb06839203af6db94a80de9b83ad1f
(cherry picked from commit 3f9a3b407aeff0311038b2097d657446c4f98b90)

Exempt-From-Owner-Approval: CP from master
18 files changed