add native vehicle network service with libvehiclenetwork libraries

- This is system api only allowing system processes to use.
- use proto to represent exchanged data. This addresses the overhead
  of redefining what is already defined in vehicle HAL.
  Still proto definition should be updated, but that is much better
  than updating code directly.
- Blob is used to contain data. This prevents passing too big data
  over binder call. All proto data are serialzed to a Blob and
  sent over binder call.
- Added native and java version of libraries: Only native side tested.
- added VehicleNetwork wrapper for clients.

- TODO: migrate car service to VNS,
        add Java side teat
        start VNS during bootup (currently needs manual start)
        implement caching

bug: 24095928
Change-Id: I391d3661de556d313319ba879b03685890cf2108
(cherry picked from commit 19559efcb153c16a77d753d535757c5d10e49708)
34 files changed