Wrappers for DAP validator functions that throw exceptions

The functions in the Distributed Array Protocol validator return a `(success, errmsg)` tuple; however, when we use them in DistArray, we usually want to throw an exception when a structure doesn't validate.  This PR adds three functions to `testing.py`:

```
validate_dim_dict
validate_dim_data
validate_distbuffer
```

which wrap the corresponding DAP validator functions but throw exceptions rather than return tuples.  They all use the `raise_exception` decorator that I added to `testing.py`.