Add salt reactors for bootstrapping puppet

Reactors can respond immediately to events sent by salt. Our
current bootstrapping process in labs for puppet involves a cron
that runs once a minute. By installing salt first, and having salt
run puppet we can more immediately start a puppet run, eliminating
up to one minute of time needed to create an instance.

The reactor chain works like so:

1. Salt requests a certificate -> auth: pend (auth.sls)
1a. An LDAP lookup is performed for the key, if found, it's signed
2. Salt key is signed -> key: accept
2a. A temporary file is written to the master indicating a first
    salt run has not occured yet
3. The minion's salt process starts -> minion_start
3a. If puppet hasn't requested a cert, run a command on the minion
    requesting a cert and have it fire a puppet: first_run event
3b. If puppet has request a cert, have the minion fire a
    puppet: first_run event
4. A puppet event is fired on the minion -> puppet: first_run
4a. A command is sent to the minion to do a full puppet run, and
    to fire an event: puppet: run_finished
5. A puppet event is fired on the minion -> puppet: run_finished
5b. The temporary file is removed

Change-Id: Ia23557cc7c69b3d1ed6da6a1cc6b738566adce7a
Merge "Add salt reactors for bootstrapping puppet" into production