fix(client): use path.Join and parsing

Machines with a trailing slash are valid. Cleanup the code so that this is
handled properly.

Closes: https://github.com/coreos/go-etcd/issues/82