Add a 'command' helper to make command behavior more uniform

Also generate the 'collections' entries from an explicit list
Rationalize the use of spec/rel URL's
Object reference is an abbreviation of full details; id is always a URL
Replace '_' in command names with '-'

Eventually, our command line client will offer commands like 'create-tag',
and that looks better than 'create_tag'
Tests: when creating atgs, use the simpler :rule instead of :matcher
Razor::Data::Tag.matcher: make mandatory

Tags with a NULL rule make very little sense
Tags through the API only have rules

Hide the whole matcher business from the API; it's an implementation detail
Try a little harder to produce valid JSON errors from API
* Rakefile (spec:cli): run only CLI tests
CLI: add support for commands
* config.yaml.sample: document installer_path
CLI: simplify error handling and reporting

We don't need our own RequestError; RestClient's exceptions already have
all the needed information, albeit in very hidden places.

Print as much information as we have to the user when we get an error from
RestClient
create-image command: document and rename image_url param to image-url

Since we use the command params verbatim in the CLI, use '-' instead of '_'
externally
create-broker command: document and rename broker_type to broker-type

Since we use the command params verbatim in the CLI, use '-' instead of '_'
externally
* app.rb: add a 'delete-image' command
* app.rb: service image files from /svc/image
* spec/broker_type_spec.rb: use tmpdir for install_script test brokers
Serve the bootstrap iPXE script from the server (and some docs)
Hack to make microkernels work