interpret table names in context of mountPath and basePath (Fixes #198)

If I understand this function correctly, it could be factored as the composition of two smaller methods:

```scala
def rebase(referenceDir: Path): PathError \/ Path = ???
def from(workingDir: Path): PathError \/ Path = ???
def interpret(ref: Path, work: Path) = from(work).flatMap(_.rebase(ref))
```

The advantage would be that `rebase` and `from` are more easily understood, they each do one thing, and it's up to the client (not `Path`) to compose them together in this or any other desired combination.