Add `element` and `references` to array validation

In order to facilitate some shorthand syntax (`["abc"] => [ {"name": "abc"} ]`), arrays will need to hold datatypes besides just objects and also assure relational integrity. The type `element` (aliased as `elements`) will be used to denote a basic datatype in an array. `references` will work like it does for hash.

Part of this change is also moving incorrectly located tests for array attributes, which were previously in the array schema spec file.
Allow shorthand in `create-policy` command

Create Policy is a representative example of the shorthand involved. This converts create-policy attributes `repo`, `task`, `broker`, and `tags` to no longer need an object/hash with just the "name" property defined. In order to preserve backward-compatibility, this command now overrides `conform!`. The method upgrades commands written in the old syntax to the new syntax.
Shorthand references in other commands

`create-repo` and `move-policy` need the same updates for references from just a string rather than the string in an object's `name` property.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-192