Fix Post#url escape

Post#url was escaped using CGI.escape.
When file name contains a space character, its url points to
non-existing URL.

For example, when we have a post named '2013-01-02-foo bar.md',
we expect its url to be '/2013/01/02/foo%20bar.html',
but it was actually '/2013/01/02/foo+bar.html'.

We now use URI.escape.
Fix Page#url escape

Post#url wasn't escaped at all.

For example, when we have a page named 'a#b.html',
we expect its url to be 'a%23b.html',
but it was actually 'a#b.html'.

We now use URI.escape.