libbladeRF: [WIP] Changed bladerf_open() interfaces to return status.

The open routines now return status, allowing the caller to
differentiate between I/O failures and an invalid device specifier.

This commit still contains some in-progress known bugs with
some (avoidable) invalid memory accesses.