Use os.path.join to join path components in a portable way. Closes gh-16