This adds support to the BLE Pybricks Profile v1.2.0. This includes a
new method to download and run programs and a new file format for the
user program.
Code for the old download and run is kept for backwards compatibility.
However, the PnP ID characteristic is no longer optional, so the
minimum Pybricks Profile is now v1.1.0.
This is the beginning of the BLE Pybricks service implementation, so
changes are made to get a handle to the Pybricks control characteristic
and enable notifications.
Currently, only one event (the status report event) and no commands are
implemented on this characteristic.
The new status report event replaces monitoring the UART for >>>>
strings to get the current hub state.
Also includes some minor cleanup in the ble-uart/actions for consistency.