Escape reserved characters when converting paths to urls

* Introduce and use BUrl::BUrl(const BPath&)
* The path is url-encoded, and the protocol is set to "file"

Fixes #10964.
Update bookmark bar item BMessage on file rename.

The ref stored in the message must be replaced to point to the new file
name. Fixes #10962.