Improve handling of defaults for :set variables

Added set_if_empty method to DSL to allow conditional setting
of variables.

Altered standard Capistrano defaults so that they are not set
at the start of a stage if they have been previously set. This
allows variables like :default_env to be set in deploy.rb.