(maint) Don't stand up master unless resigning.

Don't take the time to bring up a puppet master unless we intend to
recreate certs.

Also clears and resets the master's cert if it has the agent role.
There is no reason to treat the master specially in this case.
(#7243) Allow CSRs to accept a set of custom attributes

When a CSR is generated, additional information may need to be attached
to the CSR for use when the CSR is signed. This commit allows an
additional hash of OID/value pairs to be included as CSR attributes when
the CSR is generated.

To ensure that user specified attributes cannot overwrite attributes
added by Puppet itself, adding attributes that deal with certificate extension
requests will fail the CSR generation process.

Original patch by Patrick Hemmer <patrick.hemmer@gmail.com>
Merge pull request #2078 from jpartlow/feature/7243/csr-attributes-test

Feature/7243/csr attributes test