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

I'm willing to give it a shot, but I'll need a little more of a hint than that ;)

Here's what I've got, which runs but I don't think it's actually suspending, right?
```
  def interpretPaths(query: SelectStmt, mountPath: Path, basePath: Path): PathError \/ SelectStmt = {
    type E[A] = EitherT[Free.Trampoline, PathError, A]
    def fail[A](err: PathError): E[A] = EitherT.left(err.pure[Free.Trampoline])
    def emit[A](a: A): E[A] = EitherT.right(a.pure[Free.Trampoline])
    
    query.mapUpM[E](
      select   = emit(_),
      proj     = emit(_),
      relation = r => r match {
        case TableRelationAST(path, alias) =>
          (for {
            p <- Path(path).interpret(mountPath, basePath)
          } yield TableRelationAST(p.pathname, alias)).fold(fail(_), emit(_))
        case _ => emit(r)
      },
      expr     = emit(_),
      groupBy  = emit(_),
      orderBy  = emit(_)
    ).run.run
  }
}
```

Do I need a different constructor in `emit`?