Disallow empty key names in hash

The key in {"": "blank"} should not be allowed in any commands (e.g. modify-node-metadata) since it is not a meaningful attribute. This commit includes cases where Array holds a Hash. Also including a fix for a few error messages that reference undefined variables.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-121