host: Removed bladeRF-flash

A majority of functionality presented by bladeRF-flash is now duplicated
in the bladeRF-cli utility.

Now that the bladeRF USB interfaces have stabilized more and the
instructions for bootloader-based recovery are available, this program
is generally no longer needed. As such, it is being removed to avoid
future neglect and bitrot.
host/misc: Added a Windows build script
bladeRF-cli: Fixed expr usage in generate.bash

expr does not appear to have a "match" operator in OSX. This has been
replaced with the ":" syntax for compatibility.

Additionally, a "--" argument has been added to avoid issues with
"$line" evaluating to an argument.

This fixes #278. Thank you to Mathieu Rene (@mrene) for reporting this
issue and providing these fixes.
host: Updated OSX RPATH settings

In response to CMake 3.0 generating warnings regarding policy CMP0042,
the OSX RPATH settings have been updated per recommendations found
in the CMake Wiki:
  http://www.cmake.org/Wiki/CMake_RPATH_handling#Mac_OS_X_and_the_RPATH

This fixes #279.
bladeRF-cli: Addressed MSVC warning about extraneous /lm argument

MSVC does not appear to require linking against a library to
utilize functions in math.h (e.g., sqrt()).
cmake: Defaulted Windows LIBUSB_PATH to libusb-1.0.19
libbladeRF: Removed old error tracking code and structures
libbladeRF: Moved "get sampling" implementation to lms.c
libbladeRF: Introduced thread-safety to a number of API calls

Top-level API functions now acquire a per-device lock before performing
control, programming, and low-level access operations. (Specifically,
these are the functions that manipulate the device handle and utilize
the FX3 <-> FPGA UART.)

Only these top-level functions shall acquire these locks; the core code
should be able to assume that locks are already acquired.

To alleviate confusion, functions that are *not* part of the API, and
therefore are safe to call within the core logic,  are stripped of the
bladerf_ prefix.
libbladeRF: [WIP] Began updating documentation wrt thread safety
libbladeRF: Hold control lock on get/set stream timeout fns
libbladeRF: [WIP] Additional API header updates and touch-ups
libbladeRF: [WIP] Acquire per-module locks on sync calls

Synchronous data transfer functions now hold a per-device-module lock
when executing to ensure these operations are carried out atomically.

The control lock is also held during sync configuration, as upcoming
changes to introduce metadata support will require flipping some config
bits on the FPGA during this operation.
libbladeRF: [WIP] Hold control lock while (de)initializing stream