libbladeRF: [WIP] Moving device info matching to API routines

Extracting device identifiers (struct bladerf_devinfo) will now
be exposed through the API to allow callers to check if a device
specifier string matches an already existing handle.

To support this, a copy of bladerf_devinfo information is now kept around in
the device handle; backends are responsible for populating this in their
open() implementation. A couple of the fields were already present, so
this only adds a couple small variables worth ove overhead.

Some re-arranging of the linux and libusb probe and open calls has been done
to acheive this. A few warnings and bugs were addressed in this process:

  - The Linux backend was attempting to fill in a serial number via
    a cached entry.

  - There was some potential for a read of an uninitialized portion
    of an otp buffer.

  - Missing serial # has been made non-fatal. (Some developers'
    device do not have serial numbers.)

For the meantime, bladeRF-flash has been removed from the build until
this set of changes is completed.
Stray character fixups
libbladeRF: Added bladerf_devstr_matches() impl
libbladeRF, bladeRF-flash: Device identifier info fns added to API

Functions for initialize, fetching, and comparing bladerf_devinfo
structures have been exposes through the API. bladeRF-flash has been
updated to use these functions.
bladeRF-flash: Corrected some usage text notes