cleanup and respond to comments

factor out Path.from and rename `relativeTo` to `rebase`

update README

use Trampoline to avoid stack overflow