Update service names to match PE Services when enterprise

This commit chooses the service name for puppet dynamically based upon whether
the build is enterprise or not. If enterprise, the puppet service is named
'pe-puppet' to match our other platforms. Otherwise it is named 'puppet'. As
mcollective is only an enterprise feature, its service name is always
'pe-mcollective' to match our enterprise platform's mco service name.

When using the PuppetServiceName variable, you have to use
$(var.PuppetServiceName) instead of [PuppetServiceName].
Merge branch 'rename-puppet-service'

* rename-puppet-service:
  Update service names to match PE Services when enterprise
Newer versions of the win32 gems depend on ffi when running under ruby 1.9.

This commit mentions to the user (during installation) that puppet has a
dependency on ffi, which is licensed LGPLv3.

Since the puppet installer is a "Combined Work" containing Artistic 2.0,
ASL 2.0, MIT, and LGPLv3, we "Accompany the Combined Work with a copy of
the GNU GPL and this [LGPLv3] document"[1] to the license file displayed
to the user in the Installer dialog.

[1] http://www.gnu.org/licenses/lgpl.txt
Maint: Add LICENSE to the project

Add a license to the project
Maint: Update Gemfile

Previously, we were using a deprecated gem source. Also there's no need to
check in the Gemfile.lock, updated the .gitignore accordingly.
Merge pull request #48 from joshcooper/ticket/master/21286-ffi-dependency

(#21285) Add ffi dependency to license
(#22064) lock down facts.d folder

This locks down the facts.d folder on Windows. Without this patch the folder
may be created and have a potential local privilege escalation issue. This
could cause future security concerns. Up until now this has not been
necessary as we have not supported executable external facts on Windows.
This patch should be released in tandem with the executable external facts
support for Windows.

This sets Administrators and SYSTEM to be the only accounts with Write access
to the folder. Users will be given Read/Execute only.  This will set the permissions
on the folder whether it already existed or not. This will apply the
permissions every time the installer is run in the future.
Merge pull request #49 from ferventcoder/fix/22064/lock_down_facts_d

(#22064) Lock down permissions to Facts.d Directory
Revert "Merge pull request #49 from ferventcoder/fix/22064/lock_down_facts_d"

This reverts commit 764494162a2f0df2fb8ba0bedefaefe1b911901d, reversing
changes made to 27bad37ae1b8f9581263910be28e33ae87a440d4.

This change caused interactive puppet runs to not be able to load facts from
facts.d. This is due to the windows installer creating access control
entries for a non-existent user (S-1-5-32), instead of mapping to the
correct Administrators and Users SIDs.
(#22064) Lock down facts.d folder without resorting to custom actions

In a previous commit (e3f60524e), we tried to use WiX custom actions to
translate well-known security IDs, e.g. WIX_ACCOUNT_ADMINISTRATORS, to
localized names, e.g. Administrators, since that is what the MSI
LockPermissions table expects[1]. However, this was causing the Puppet
installer to create access control entries for the facts.d directory such
that only the builtin domain (S-1-5-32) SID could read and execute. While
this is a valid SID, it's nonsensical as it doesn't correspond to an actual
user or group account. As a result, interactive puppet runs did not work
since access to the facts.d directory was denied for all but LocalSystem.

That code was reverted in e3f60524e.

This commit changes the wix file to use the common user names "Everyone" and
"Administrators" which according to the docs, "are mapped to well-known
SIDs."

Also, we don't explicitly grant LocalSystem full control, because
"LocalSystem is given full control in all security descriptors created
through the LockPermissions Table."

[1] http://msdn.microsoft.com/en-us/library/windows/desktop/aa369774(v=vs.85).aspx
Merge branch 'ticket/master/22064_unreadable_facts_d'
(maint) adding foss-stable.yaml
(maint) update gitignore
(maint) add visual studio project

This will assist in better design time handling
of working with WiX
(maint) reducing errors from the project file
(maint) small fixes to wix files

This is provided to fix small issues with pathing in the wix files
Merge branch 'maint/master/small_fixes_to_wix'
(maint) Details about Git version / .gitconfig conflicts
(#22700) Add puppet to path

This adds puppet and facter to the path without clobbering any other
environment settings on the machine (aka ruby installs).
(#22368) allow agent environment

This allows agent environment to be set during the installer and adds
environment=ENV to the puppet.conf file. By default this will set environment
to production.

This brings parity of this feature to Windows as compared with non-Windows OSes (they already have
the ability to specify agent environment during installation).

You can set this by passing it as a MSI property PUPPET_AGENT_ENVIRONMENT.