Ubuntu Precise (12.04 LTS) generic installer

This implements a better Ubuntu Precise installer.

This includes some new installer helpers to allow using repo_url as tool
for retrieving host, port and path of the repository
independently.  (This is required to support the Debian/Ubuntu
installer, which wants them as components rather than a single
fully-formed URL.)

This is partially rewritten by Daniel Pittman <daniel@puppetlabs.com> to
clean up the commit style, and move some code around to better locations.

I made no functional changes to Thomast's work, which was excellent in
all other ways.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Update BOOTIF include the network type and mac

This updates the installer to use iPXE facilities to inject the MAC address of
the DHCP interface into the installer, rather than depending on a much more
convoluted round-trip through the Microkernel.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Define architecture as part of the installer

This adds a manually defined `architecture` field to installers, which
is useful for the Ubuntu installer -- it generally only ships a single
architecture on a disk.
Remove not required kernel_args.erb file from ubuntu preice folder
* doc/api.md: fix a couple minor typos
Add commands to delete and update tags

Fixes https://github.com/puppetlabs/razor-server/issues/68
command update_tag_rule: require 'force' option if tag is used by any policies

If a tag is used by any policies, require that the user pass a 'force'
option to the update-tag-rule command
Evalute tags against all nodes on changes to the tag

* When creating or updating a tag, evaluate it against each node and
  applied/removed as appropriate. Evaluation happens asunchronously
* Updated api docs
Razor::Data::Tag: update node tags whenever a tag rule changes

This does not change the current functionality, but makes it more likely
that we'll keep the API promise we are making now that node.tags reflects
what existing tags apply in the future.