Refactor URL processing/generation into separate module

This is done to prepare for improved permalink generation
for URLs containing special characters, as proposed in
issue #782
Merge branch 'master' into permalink-special-characters

Conflicts:
	lib/jekyll/page.rb
	lib/jekyll/post.rb
simplify some code with Hash#fetch
move path handling in pages to the `path` method, as in posts
With the move of path handling, Page#to_liquid can be simplified
simplify coderay option handling
simplify Site#initialize
Support missing kramdown coderay option
Posts: move slug to title in a separate method
Move #to_liquid to Convertible
remove no-longer needed LSI accessor

LSI has been moved to another class (Jekyll::RelatedPosts),
but this was left in Post.
refactor Include tag file validation

Split validation into a separate method, and give a more
descriptive error on symlinks.
coding style preferences (@parkr)
Post + Page: extract real path retrieval into separate method (@parkr)
Merge branch 'master' of https://github.com/mojombo/jekyll into permalink-special-characters
Move URL generation to own class instead of a module

As suggested by @parkr in #944
Convertible#to_liquid: allow an alternate attribute set to be passed
Merge branch 'master' into minor-refactors
Use symbols for all placeholders

See https://github.com/mojombo/jekyll/pull/944#discussion_r5443105
for a discussion.
Improve comment for url_placeholders method