registerTask() allow dupes and expand testing

   * Update to the expanding testing from elsewhere
   * Fixes #5
   * Do not add the same item multiple times
   * Do not add the tasks in an array multiple times
   * Adds an options object to allow:
     * a flag to insert an item or the items in an array multiple times

BREAKING CHANGE: This includes a breaking change by requiring the options object with the duplicate flag to be set to allow multiple items. I believe this is the intention most people would use as running the same grunt task multiple times is rarely done but having the registerTask called multiple times as a precaution to make sure it is there is done quite often. I don't think people would expect that to insert it multiple times.