This allows TxStreamer.recv_async_msg() to return the metadata instead
of modifying it in-place. The old API is still available.
```python
md = tx_streamer.recv_async_msg(timeout) # Returns None or metadata
```
This fixes the build errors that occur due to switching locations of
noncopyable.hpp within Boost, and also allows us to remove
boost::noncopyable in one fell swoop.
Expose optional timeouts on send, recv, and recv_async_msg. These
timeouts do not apply to the setup in the wrapper functions, only the
calls to the streamer functions.
- Separating exposed Python data structures into logical sections
- Exposes all of the multi_usrp API
- Adds a layer of Python for documentation and adding helper methods
- Adds improvements and fixes to the MultiUSRP object
- Includes additional exposed data structures (like time_spec_t, etc.)
- Add code to release the Python GIL during long C++ calls