message: fix: Only start scanning when future is executed
  We were starting scans on call to start_scanning(), rather than when
  the future was executed. This caused weird races on linux.
diff: @@ -142,13 +142,13 @@ impl DeviceCommunicationManager for BtlePlugCommunicationManager {
  let central = self.adapter.clone().unwrap();
  let adapter_event_handler_clone = self.adapter_event_stream.clone();
  + Box::pin(async move {
  info!("Starting scan.");
  if let Err(err) = central.start_scan() {
  // TODO Explain the setcap issue on linux here.
  - return ButtplugDeviceError::DevicePermissionError(format!("BTLEPlug cannot start scanning. This may be a permissions error (on linux) or an issue with finding the radio. Reason: {}", err)).into();
  + return Err(ButtplugDeviceError::DevicePermissionError(format!("BTLEPlug cannot start scanning. This may be a permissions error (on linux) or an issue with finding the radio. Reason: {}", err)).into());
  }
  is_scanning.store(true, Ordering::SeqCst);
  - Box::pin(async {
  async_manager::spawn(async move {
  // When stop_scanning is called, this will get false and stop the
  // task.
  