Reduce tar extractions

With this change, the tar_extract resouce won't extract a tarball during
every chef run, as log as it doesn't get triggered explicitly by a new
or updated remote file.

In case any of the available guards "creates", "not_if" or "only_if" are
present, the behavior depends on the result of the guards.

This change allows to use the following tar_extract resource, which will
make sure that every changed remote file will result in a tar extract
run while it also prevents unnecessary tar extracts in case nothing has
changed.

    tar_extract "http://files.example.com/foo-#{version}.tar.gz" do
      notifies :restart, "service[foo-service]"
    end

Using "creates" here doesn't work, as the extracted binary doesn't
include any version string. If the execute resource is running every
time, the notification would trigger too often.
Merge pull request #11 from soundcloud-cookbooks/reduce-tar-executions

Reduce tar extractions