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.