Report correct ADB ports for remote host goldfish

This commit adds GetAdbPorts and GetVncPorts to BaseDeviceFactory. The
methods are called in the common creation flow. By default, the port
numbers are constant. The goldfish and cuttlefish device factories
override the methods and return the ports according to
base_instance_num and num_avds_per_instance.

Test: acloud-dev create -vv --avd-type goldfish \
      --branch aosp-master --build-id 8466348 \
      --build-target sdk_x86_64-sdk \
      --config-file ~/acloud-user.config \
      --service-account-json-private-key-path ~/key.json \
      --host-ssh-private-key-path ~/id_rsa \
      --host-user root --host 192.168.9.2 \
      --image-download-dir ~/download \
      --report-file report.json \
      --base-instance-num 2
Test: acloud-dev create -vv --avd-type cuttlefish \
      --branch aosp-master --build-id 8466348 \
      --build-target aosp_cf_x86_64_phone-userdebug \
      --config-file ~/acloud-user.config \
      --service-account-json-private-key-path ~/key.json \
      --host-ssh-private-key-path ~/id_rsa \
      --host-user vsoc-01 --host 192.168.9.2 \
      --image-download-dir ~/download \
      --report-file report.json \
      --base-instance-num 2 --num-avds-per-instance 3
Bug: 231406725
Change-Id: I86a91bbb13815983cb0a185f88ed14bdecf1585b
11 files changed