(maint) Remove unused files and dirs under ext during packaging

Currently, razor debian builds are failing because rmdir is called
on ext during the dh_install in the debian/rules, but ext still has
contents. This commit adds a line to remove the files that are still in
ext and the directories that are still in ext to allow the rmdir to
succeed cleanly.

The failures look like this:

```
rmdir ext		# should be emptied by now
rmdir: failed to remove 'ext': Directory not empty
make[1]: *** [override_dh_auto_install] Error 1
```
Fake Queue matcher: do not raise an exception when checking an empty queue

When the queue is empty and a test calls have_published, the test would
fail (as it should) but with a confusing error message about nil not having
a map method.

This change makes sure that we properly complain about the missing publish
in the test failure
Make sure update-tag-rule retags all affected nodes

This issue was cause by two cooperating bugs:

  1. In Razor::Data::Tag#around_save we used 'or' instead of '||' in
  setting need_eval_nodes which would be false if the rule for a
  preexisting tag was changed, and therefore eval_nodes would never be
  called. Ultimately, this is because 'a = false or true' sets a to
  false. Go Ruby.

  2. The spec test always caused an 'eval_nodes' message to be published
  when it created the tag it was testing with. We now clean out the queue
  after the tag is created to make sure we only succeed if the operations
  in the test cause a message to be published

Issue: https://tickets.puppetlabs.com/browse/RAZOR-250
* Rakefile: use razor-admin instead of duplicating code

Make rake tasks a shim around razor-admin commands for the things that
razor-admin can do. The code duplication between the two led to endless
problems where only one place was being updated.
Provide expected argument datatype for commands

In order for the client to know how to format data for arbitrary commands, the server needs to provide this information. This includes the expected JSON datatype as interpreted from the validation framework.

Included in this commit is the change to only support one datatype per attribute. If other datatypes are desired, they can be supported via the `conform!` method. `update-node-metadata` and `modify-node-metadata` have been updated to accept both `_` and `-` in their arguments that previously only accepted the non-standard `_`.

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