Make withPrompts, withArguments, withOptions chainable

Close #631 
Rather than using if/else just enforce the type. (Also, the logic seemed flawed as if the args is not an array, we do not want to set it up as the arg value)