Allow powershell (& other arbitrary) install files inside a broker type

Windows machines, being unable to run Bash files, will need an alternative
file format for each broker. In order for a broker to receive a different
install file, its task needs to call
`/svc/broker/${id}/install?script=${file}`, where `$id` is the node id and
$file is the file that should be returned. For powershell, `$file` will equal
`install.ps1` and the file in the `.task` folder will be `install.ps1.erb`.
Calling this without the `script` argument is equivalent to calling it with
`script=install` for `install.erb`, meaning this is a backwards-compatible
change.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-355
What happens here if the URL ends with "?script=" .. if that sets script_name to the empty string, things will go wrong Razor::BrokerType::install_script - though I haven't checked that behavior. I think that should be treated the same as a completely missing script param and is probably a good test to add.