Handle = in names

Existing functionality failed if you tried to, for example, create
a name like "a=b". This fixes that by consolidating the logic around
the expected datatypes for each argument.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-372
It looks like we are reversing the array here; doesn't '--arg v1 --arg v2' lead to an array [v2, v1] ? I might be wrong, but existing_value + value seems like what we'd want here