Context manager & decorator to disable backdrop

We don't always want to call out to Backdrop on creation of DataSets.

You can now do:

```
with backdrop_connection_disabled():
    pass

@disable_backdrop_connection()
def foo():
    pass
```

Updated the tests to use this rather than patching (where appropriate).