Use pytest.fixture for backends

For some reason the metafunc way doesn't play well with pytest.fixture. This lets you chain in additional fixtures that vary by backend easily.