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
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.
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.
- 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 #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
x300: merged subdev update routines for tx and rx
x300: added channel mapping capabilities
uhd: added channel mapping support to multi_usrp
utils: added subdev selection to cal tools