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 the initial contact 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.