Match `Hash` implementation of `fetch`

An optional block can be passed to `fetch` that will be called in the
event that the variable is not set.

    fetch(:var) { fail 'var not found' }
extract bundler task
Merge pull request #604 from capistrano/feature/extract-bundler

extract bundler task
Add a task to load defaults

Now gems can implement a 'load:defaults' task in order to set any
defaults that may rely on other varibles set in stage configuration.

    namespace :load do
      task :defaults do
        set :my_file, release_path.join('my_file')
      end
    end
Merge pull request #605 from capistrano/feature/load-default-task

Add a task to load defaults