Remove `all` from `update-node-metadata`

The `all` parameter was previously not functional. It was not mentioned in
the API.md document. It was declared as a valid boolean parameter, but had no
effect on the execution of the command. This removes that superfluous
parameter.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-364
Ubuntu Precise task encounters error

On Ubuntu Precise, the error: "mirror does not support the specified release"
occurs. Turns out this is due to a change to how the preseed file is fetched.
Trusty works fine with the current config, so this will change Lucid and
Precise back to the last working version.

This commit follows the decision that the base task should be kept most
up-to-date, meaning that `ubuntu.task` should currently mimic Trusty.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-366
Update README.md

fixing semver link
Use `help` instead of `to_s` to represent the schema's help text

The previous method for storing help was in the object's default serialized
representation. Much more appropriate, used here, is a different method
called `help`.

For https://tickets.puppetlabs.com/browse/RAZOR-272
Add CLI example capability

In order to support examples that are customized for the command line client
interface, we need to build out a more robust format for the help texts
stored on the server. The help for each command now includes several pieces:
- "full" is still present to support older clients
- "summary"/"description"/"returns"/"examples"/"schema" added for each
component
- "examples" is a nested object: "api" and/or "cli" can be present

Clients (namely the CLI) should display these attributes if present in the
help text's JSON.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-272
Translate API help examples into CLI help examples

The help examples that currently exist are only for direct API calls, or for
sending a JSON file for a command. This change translates the existing
examples into a CLI format, which will be available alongside the existing
API examples.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-272
Use brokers in Windows installs

In order to have operational Powershell brokers in Windows, proper hooks need
to be in place to download and execute the file right before the user is
able to log into the system. This commit achieves that by having
the Windows installer download the file from the server and register a
service to run the file on boot.

Included in this commit are translations of the no-op broker and the PE
broker. The latter requires a valid URL to the puppet agent MSI, which is
either derived from the `version` parameter, or supplied directly by the
broker's config.

Fixes https://tickets.puppetlabs.com/browse/RAZOR-59
Properly handle DOS line endings for WIndows files (no functional change)

Tell git that *.ps1 files are Windows files and should be treated as such.
build-winpe: allow passing in where image and scratch files should be put
build-winpe: adapt to ADK 8.1

Based on https://github.com/nanliu/razor-server/tree/win2012
build-winpe: pass the Razor server URL in at build time

Since there is no way to set the URL of hte Razor server at boot time, we
pass it in at build time as a command line argument to the
build-razor-winpe script
Installer for Windows 2012 R2

Fixes https://tickets.puppetlabs.com/browse/RAZOR-353
* build-winpe/razor-client.ps1: retry contacting to the Razor server

Sometimes, at least on my network, the first few attempts at accessing
/svc/nodeid fail, presumably because the network isn't fully up yet. To
mitigate that, try to contact the Razor server up to 10 times, with 3s
pause in between.