Remove unused functions and add more test coverage

This whole set of tests can be written more succinctly

```python
@raises(ValueError)
def _fail_img_to_relative_xyi_helper(input_dict):
    core.img_to_relative_xyi(**input_dict)

def test_img_to_relative_fails():
    fail_dicts = [{...}, {..}]
    for failer in fail_dict:
        yield _fail_img_to_relative_xyi_helper, failer
```