x300: Added hardware flush mechanism to PCIe logic.

- Added DMA enabled states to DMA logic to allow for hardware data flushing during init.
- niusrprio_session will now check for FPGA busy before downloading
x300: Cleanup for PCIe flushing
x300: Added synchronization between device claiming and checking.

- We now maintain a registry of pcie ZPU transports
- Added static mutex for claimer
x300: Addressed review feedback

- Fixed synchronization for unclaim
- Removed stray RIO addr space set
x300: Bumped FPGA compat number to 5.
x300: Changed bus_clk frequency to 166.67MHz.
x300: Fixed DMA busy logic after review feedback.
x300: Bumped FPGA compat number to 6.
Merge branch 'ashish/fpga-busy-bugfix' into maint
Merge branch 'maint'
cmake: fix UHD_VERSION determination when most recent tag contains hyphens
Merge branch 'maint'
multi_usrp: Throws warnings for some tree props

Until now, multi would simply access some property and assume it exists.
A call for set_tx_dc_offset() on a B210 would thus throw errors.
This checks for B-series-only leaf nodes before doing anything and
displays a warning instead.
usrp2: fixed usrp2_card_burner.py and usrp_n2xx_simple_net_burner paths in incompatibility error messages
Merge branch 'maint'
BUG #460:  X300: GPGGA sensor most often empty, while RMC is usually OK
- It was found that strings containing only a newline character were being returned by N-series and X-series devices.
- Added better handling of strings received under 6 bytes.
- Added erasing of end of line characters.
Merge branch 'mwest/gpsdo_empty_strings' into maint
Merge branch 'maint'
msg_task: return std::vector<boost::uint8_t> instead of std::vector<uint8_t>
usrp_n2xx_simple_net_burner: implement features from old Python burner

* --dont-check-rev ignores USRP revision, useful when EEPROM is corrupted
* --overwrite-safe overwrites safe images after warning user of danger