[issue #140] ordering issue for same-day posts

* check for the post's date prior to build a date
  for the source path to let posts be correctly order on the same
  day
Add support for GitHub Pages deploy target Repository

Property: repository (default: origin)

    The "remote" repository that is the destination of the push operation.
    This parameter can be either a URL or the name of a remote.
    (ref: git help push)

Example:

    deploy:
      host: github_pages
      branch: master
      repository: upstream
Spawn regeneration thread in Dev mode

Spawn a new thread when the Guard listener detect a change on a monitored file.
The new thread will perform the normal site regeneration, but the Guard listener
is now free to receive new events.

If a new change event on the same path as currently running is detected, the running
thread(if any) will be killed, and a new thread is spawned that starts the
regeneration again. If a different path is changed, the started regeneration is
allowed to finish before the new path is regenerated.

This allow the user to make multiple rapid changes to the same template without having
to wait for the re-generation of all the dependent pages to finish before the
current working template is regenerated.
Add individual tracking of content and variables

Changes to Front Matter variables are only read once and updates are
never reflected to the Page object as they can be changed by the pipline
which only run during startup. Tracking dependencies between Page objects
for both content and variables as one is wastefull in this scenario as
a lot of Pages will depend on each others variables, but very few on their
content. Regenerating a Page because a dependency has changed Front Matter
has no effect on the output (the old variables are used).

Instead track content and variable dependencies individually, but only
trigger regeneration of dependent Pages if content has changed.
The content and Variables are hashed using SHA256 which allow us to detect
a real change, and not just the a file has changed modify time.

When a change event occure, the following steps are taken:

* Locate the Page for the given Change event Path
* Trigger regeneration of that Page
* If that Page's Content has changed
    * Find all dependent Pages and trigger regeneration
* If that Page's variables have changed
    * Warn that a restart is required for the change to take effect

The corresponding Page to a changed path will always be generated first,
before its depending pages. The depending pages are sorted by last modified
time. This allow the regeneration process to start with 'the most interesting'
pages first to give the user a quick feedback on change, while updating
the complete dependent tree in the 'background'.

> Page variable dependencies are still tracked, but not currently used.
> A possible usecase could be to display a Page's dependencies as debug info.
Merge pull request #148 from aslakknutsen/checksum

Dependency tracking and usability changes
Merge pull request #151 from lance/9479e55ebc9102cfc2841f1f083837a8c79ab865

Use Shellwords to escape user input on system commands
Merge pull request #143 from aslakknutsen/ghp_repo

Add support for GitHub Pages deploy target Repository
Merge pull request #141 from jmesnil/140_same_day_posts_ordering

[issue #140] ordering issue for same-day posts
Skip Shellwords escape for windows as it mangles the rsync command
add /favicon.ico to sitemap default excluded
Merge pull request #153 from codylerum/win_rsync_shellwords

Skip Shellwords escape for windows as it mangles the rsync command
Merge pull request #154 from codylerum/sitemap_exclude_favicon

add /favicon.ico to sitemap default excluded
include leading slash on default excluded files
Catch and log exceptions in InterpolationHandler's instance_eval.
Merge branch 'master' of github.com:lance/awestruct