Config tasks proposal

Developers often use rake to build project-specific command line tools, even with alternatives like Thor out there.  For these it would be nice to provide task configurations without ENV variables, and to be able to use a more standard 'task arg arg' syntax rather than 'task[arg,arg]'.

To do so I propose commits in this pull request, which adds a new tasc syntax for ConfigTasks.  For example here is a command line tool to write a greeting.  It uses args, configs, and illustrates that simple config types are automatically converted to appropriate objects; String, Integer, Float, and true/false (for flags and switches) are supported.

    require 'rake'
    
    desc "welcome a thing"
    tasc :welcome, :thing, %{
      -m,--message [hello]  : A welcome message
      -n [1]                : Number of times to repeat
    } do |config, args|
      config.n.times do 
        puts "#{config.message} #{args.thing}"
      end
    end

These tasks may be invoked using the current syntax. 

    % rake welcome[world]
    hello world
    % rake welcome[--message,goodnight,-n,3,moon]
    goodnight moon
    goodnight moon
    goodnight moon

Alternatively, the first commit in this request adds a new command line syntax whereby args after a '--' are re-written into the current syntax.  For example:

    % rake -- welcome world
    hello world
    % rake -- welcome --message goodnight -n 3 moon
    goodnight moon
    goodnight moon
    goodnight moon
    % rake -- welcome --help
    Usage: rake -- welcome [options] object
        -m, --message [hello]            A welcome message
        -n [1]                           Number of times to repeat
        -h, --help                       Display this help message.

The new syntax and ConfigTask class do not interfere with any of the current functionality AFAIK, and does not add dependencies. If you want I can clean up these commits into two separate pulls -- one for the 'option' syntax and one for ConfigTask.  In addition, I recognize ConfigTask could use a little more internal documentation which I will add if you intend to pull in these changes.

Thanks!  Hope you like the proposal!