Changes to nrf24l01 driver: nonblocking send option etc.

Principal changes:
1. Constructor throws exception on hardware failure.
2. A new method for nonblocking send, blocking send() method amended to use it.
3. Change default speed to 256K: this improves range/error rate.
4. Channel numbers constrained to 125 rather than 127. (As per datasheet.)
5. reg_read_ret_status() method removed. Replaced by a reg_read(STATUS) (simplification of code).
What you implemented here is exactly a generator!  Please use yield instead and it will greatly simplify the function.  Eg:
```python
# power up code
yield None # not ready
while not (...):
    yield None # not ready
yield 1 if status & TX_DS else 2