libbladeRF: Removed old error tracking code and structures
libbladeRF: Moved "get sampling" implementation to lms.c
libbladeRF: [WIP] Added control lock acquisition to top-level

Top-level API functions now acquire a per-device lock before performing
"control" operations.

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.

This code will currently induce deadlock. The following commit will
clean up calls to API functions from within the core code.
libbladeRF: [WIP] Don't call API functions from lms.c
libbladeRF: [WIP] Don't call top-level API functions from si5338.c
libbladeRF: [WIP] Moved FPGA functions, don't use bladerf_* fpga fns in core
libbladeRF: [WIP] Removed API calls from xb.c
libbladeRF: [WIP] Moved most remaining logic to bladerf_priv.c

bladerf.c now contains mostly device lock acquisition and calls
down into other modules. Core code should no longer call up to
any of these API functions that take a device handle as an argument.

bladerf_priv.c provides the glue logic between the various sub-modules.

Flash field-related routines have been moved to flash_fields.c.