* Rakefile: make the 'archive' task work again
Heap space for razor

The heap space was previously too low,
causing intermittent issues. This changes
the default to 1024MB. The rest of the
options are copied from the standard
Torquebox packages.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-331
Update README.md
Case-insensitive uniqueness

When the user tried to create the same entity twice but with different
case-sensitivities, the server would reach an infinite loop or allow both
entities to exist in the case of Tag. This fix converges those to more
standard behavior by universally rejecting the request to create the entity
twice. The fitting error message will be: "...already exists, and the name
fields do not match".

Fixes https://tickets.puppetlabs.com/browse/RAZOR-313
Migration fix
`create-tag` should be idempotent

Running multiple identical `create-tag` statements
was not identifying that both `rule` arguments were
identical. This fixes that by allowing each property
of each entity to define how it should be considered
equal via an `equals?` method.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-274
When /svc/boot boots locally it should not log 'repo' => 'microkernel'

The repo field in this log message was deceiving, since the node doesn't
technically have a policy. The log message will now omit that field if the
node does not have a policy.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-266
Fix migration script

The migration script for tag unique constraint sensitivity needs improvement:
- More generic renaming function
- Fixing broken migration in cases where more than one naming conflict exists
 (e.g. 'ab', 'Ab', and also 'AB')

Fixes https://tickets.puppetlabs.com/browse/RAZOR-313
(RAZOR-335) Remove Sid/Unstable from build defaults

This commit goes through the build_defaults.yaml and removes the sid and
unstable entries. Part of the reason for this removal is the lack of
testing the build but still shipping the packages and we already
build against Debian tests.
Query IPMI Details

IPMI details had no way of being queried. This places username and hostname
in the node details, and so can be queried via `razor --full nodes $name`.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-277
Fix spec test
`create-policy` should warn that it cannot create tags

When the user runs an outdated `create-policy` command that was intended to
create a tag, the user sees the unhelpful: `error: tags[0] should be a string,
but was actually a object`. This should instead read: `error: this command can
no longer create tags; see `razor help create-tag``.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-336
Standardize aliases in commands

Aliases are becoming a common design pattern. This commit refactors those into
the Command class.

For https://tickets.puppetlabs.com/browse/RAZOR-276
Alias 'c' for 'configuration' in `create-broker`

To abbreviate the `create-broker` command, this adds "c" as an alias. In
the process of doing that, this commit refactors the behavior of creating
aliases into the Command class.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-276
Adding spec files
Upgrade Torquebox and JRuby

For best practices, performance, and security compliance, it's helpful to use
the latest versions of libraries. This commit updates Torquebox to 3.1.1 and
JRuby to 1.7.13 as a consequence. The previous version of Torquebox shipped
with JRuby 1.7.8, so this updates these libraries in sync.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-339
Fixing Debian's i386 installation task

The task for Debian was incorrectly handling i386 infrastructure, never
actually booting but rather always failing. This rectifies that mistake.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-325
Fixing Ubuntu's preseed URL mutation

The preseed's URL was not working in cases where the domain did not contain a
period. That happened due to a "feature" where the preseed/url kernel
argument would be augmented by the get_domain parameter of the node. For
example, if the policy's hostname pattern was "node${id}.example.com", the
preseed URL would be mutated from
"http://razor-server:8080/svc/file/preseed" to
"http://razor-server.example.com:8080/svc/file/preseed". This method grabs
the preseed file first, then passes it using preseed/file instead of
preseed/url.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-326
Fixing Debian's preseed URL mutation

The preseed's URL was not working in cases where the domain did not contain a
period. That happened due to a "feature" where the preseed/url kernel
argument would be augmented by the get_domain parameter of the node. For
example, if the policy's hostname pattern was "node${id}.example.com", the
preseed URL would be mutated from "http://razor-server:8080/svc/file/preseed"
to "http://razor-server.example.com:8080/svc/file/preseed". This method grabs
the preseed file first, then passes it using preseed/file instead of
preseed/url.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-325
Ubuntu 10.04 + 14.04 task support

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