When --device is omitted or set to 0, the bridge listens to all
broadcasting ANT+ trainers instead of filtering by a specific device.
The actual transmitting device ID is shown in data logs, allowing
users to discover and then filter specific trainers.
Also fix vendorID/productID not being assigned to config struct
which caused ListenForTrainer to receive 0 for both values.
- Add BLE spec constants for service/characteristic UUIDs and signal flag
- Add ANT+ spec constants for data page mask and cycling power page
- Add descriptive comments explaining each constant's origin and purpose
- Add mutex to prevent interleaved log output from concurrent goroutines
- Make logMsg delegate to logPrintf for consistent synchronization
- Buffer events channel to size 1 with select/drop when full
- Close events channel on ListenForTrainer exit so process terminates
- Move flag registration from init() to main()
- Make rootCmd a local variable in main() instead of a package variable
- Log errors from hciconfig down/up reset commands
- Log errors from BLE power characteristic writes