message: doc: If scanning fails, explain that it might be due to permissions
  Linux setcap issues can cause scanning failure. This isn't a full
  explanation of that, but it's something.
diff: @@ -68,7 +68,6 @@ impl DeviceCommunicationManager for BtlePlugCommunicationManager {
  let device_sender = self.device_sender.clone();
  let (sender, mut receiver) = channel(256);
  self.scanning_sender = Some(sender.clone());
  - task::spawn(async move {
  let on_event = move |event: CentralEvent| match event {
  CentralEvent::DeviceDiscovered(_) => {
  let s = sender.clone();
  @@ -83,7 +82,11 @@ impl DeviceCommunicationManager for BtlePlugCommunicationManager {
  // make our handlers exit early after dying or something?
  central.on_event(Box::new(on_event));
  info!("Starting scan.");
  - central.start_scan().unwrap();
  + if let Err(err) = central.start_scan() {
  + // TODO Explain the setcap issue on linux here.
  + return Err(ButtplugDeviceError::new(&format!("BTLEPlug cannot start scanning. This may be a permissions error (on linux) or an issue with finding the radio. Reason: {}", err)).into());
  + }
  + task::spawn(async move {
  // TODO This should be "tried addresses" probably. Otherwise if we
  // want to connect, say, 2 launches, we're going to have a Bad Time.
  let mut tried_names: Vec<String> = vec![];
  