Create TransportLayer abstraction

Summary:
To use BluetoothTransportLayer, we will also need a way of getting
an InputStream and an OutputStream from the BT sockets. All code is in the
DogfightBluetooth branch.

Change AppState back to PlaneState

Switch away from polling

Address comments.

Continuation to D110

Test Plan:
later

tested

Reviewers: prashant.vaibhav

Reviewed By: prashant.vaibhav

Differential Revision: https://office.tobyrich.com/D113
Improve UI

Summary:
Add shadow cover
Change info icon
Add CRT background
Use monospaced font for aligned data

note: Nanda said she will make some design changes

Test Plan: yes

Reviewers: prashant.vaibhav

Reviewed By: prashant.vaibhav

Subscribers: nanda.dias

Differential Revision: https://office.tobyrich.com/D114
Use LibSmartlink with includesPrimaryServices

Summary: + add FirmwareUpload to services.plist

Test Plan: tested

Reviewers: prashant.vaibhav

Reviewed By: prashant.vaibhav

Differential Revision: https://office.tobyrich.com/D118
Do not instantiate BLEFirmwareUpload

Summary:
Previously, Smartplane was trying to upload the firmware
and the result was an NPE, because there was no firmware img.

Test Plan: adb install Smartplane.apk

Reviewers: prashant.vaibhav

Reviewed By: prashant.vaibhav

Differential Revision: https://office.tobyrich.com/D122
Use new UI assets for weather

Summary:
Also, switch the settings and the weather screen.

Improve weather UI

Test Plan: adb install Smartplane.apk

Reviewers: prashant.vaibhav

Reviewed By: prashant.vaibhav

Differential Revision: https://office.tobyrich.com/D126
Make checklist prettier

Summary: TODO: use IOS icon for checklist

Test Plan: yes

Reviewers: prashant.vaibhav

Reviewed By: prashant.vaibhav

Subscribers: nanda.dias

Differential Revision: https://office.tobyrich.com/D127