Fix intermittent test failure due to content ordering

One of the IPMI tests would very occasionally fail because the order of data
was not what was expected.  This was a situation I considered theoretical,
rather than practical, when the test was first written -- and the order does
not matter, just the unordered set of values.

This updates the test to use an order-insensitive comparison, ensuring it will
always pass regardless of random chance altering the order.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Validate `create-broker`, and make `references` mode liberal

This adds validation for the `create-broker` command.  Unlike previous
commands, this one has a field that references an object that is not stored in
the database, the BrokerType.

Supporting that made for two new features required in the validation code:
 * use a duck-type interface to check if the object exists
 * support different "search key" and "attribute name" in references

Finally, since we needed a unified interface for everything that we reference,
this updates the BrokerType `find` method to follow the same conventions as
the Sequel::Model classes.  That eliminates various special case code, and
lets us treat them polymorphicly.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>