Fix bug, improve parameters management, allow to wait job end in a blocking way

Hi,

I have fixed a bug : when the rundeck only has one project it was crashing (see : 549bf8e)
I have also added capacity to give a hash with parameter_name -> parameter_value to the job.execute! method,
and finally i added a execution.wait_end(interval, timeout), to allow to wait end of job in code (it was useful in my case).
I like the conversion to an args hash and good catch on the `URI::encode`. I missed that.
May I suggest using `join` instead of building the string with `+=`, like so:
```ruby
args_hash.map{|param, value| "-#{param} #{value} "}.join(" ")
```

Finally, you need to handle the case where there are no args in the hash. As it stands, you'll end up with the following url: "api/1/job/123/run?argString=", when you really want to send "api/1/job/123/run"