usb: better processing of strings from libusb

* When overwriting a string field with a shorter string, libusb doesn't erase extra characters
* Extra processing of this string (already done by load_eeprom) removes extraneous characters
b200: throw exception when master clock rate (tick rate) is requested to be > max for certain # of channels (i.e. restrict to 30.72MHz for MIMO)
Also includes sscanf type fix in b200_impl and longer timeout for AD9361 read
x300 mtu: Removed magic number, minor manual updates
- Fix for BUG #264: ./test_pps_input --source external passes even with no 1 PPS on external input on X3xx
- Fixed behavior of PPS and clock references to be consistent and intuitive.
-- Added detection of clock reference and PPS.
-- Changed order of precedence to external, gpsdo, internal for default of clock and PPS.
-- Throws runtime error if the user requests a reference clock or PPS that is not present.
- Bumped FPGA compatibility to 4.
b200: Fixed bug in rx_dsp_core_3000 that would assume 3 halfbands and X300 settings interface.
fpga: removed superfluous B2x0 files
Fixed bug found during testing where internal clock reference was taking several seconds to lock.
Added reset to the clock control and called it whenever the clock reference is changed.
Merge branch 'master' of github.com:EttusResearch/uhddev into b200/warn_mimo_mcr
- Added wait for reference clock to lock.
- Modified wait for GPSDO time setting to timeout after 1 second.
Addressed comments from code review.
- Created macro for gain name error.
- Fixed typos.
b200: Added channel mapping capabilities
boost: Bump required boost version to 1.41.

* The addition of boost::property_tree entails dependency on 1.41
  or higher.

* Old versions have been removed from the boost_ADDITIONAL_VERSIONS
  variable.

* Removed future untested (possibly API breaking) versions of
  boost beyond currently released boost stable of 1.55.

Signed-off-by: Moritz Fischer <moritz@ettus.com>
rpc: Make usrp3 compile again on RHEL6.

* boost::asio::connect appears in boost 1.47
  added conditional for older machines

* boost::system::get_system_category() instead of
  boost::system::system_category.

Signed-off-by: Moritz <moritz@ettus.com>
BUG #371: X300: Dies and left in bad state
- Disabled packet forwarding and link state cycle detection in firmware.
- Fixed the link state algorithm so the updating runs the first time and
  the forwading update only happens when necessary.
- Added check for 10GbE before calling MDIO functions.
Adding bootram.coe file from latest firmware changes.
- Fixed segmentation fault when using X3x0 with daughterboards in 4x4 configuration.
  - Updated index of dboard_manager dictionary to include mboard.
Fix for Bug #378:  rpc_client::call() dereferences NULL pointers
    - Added check for empty data before write
Fix for BUG #386: RIO & UHD: Flush buffers smarter
- Updated flush algorithm to acquire and release all elements instead of 1 element at a time
Fix for BUG #390: RIO & UHD: multi-channel recv() does not notify there has been an overflow
- Corrected flush algorithm
- Cached metadata for overflow during call to handler
x300: remove data that was duplicating property tree