(#7243) add csr_attributes_file parameter

This adds a `csr_attributes_file` parameter to the puppet config which allows for specifying user defined attributes to be added to the CSR. The file is yaml instead of flat key/value as this allows you to have an array of values for a parameter (which is also allowed in a CSR). However if the user were to provide a hash in the yaml, or a nested array, it would probably break.

Example file:

    ---
    1.3.6.1.4.1.34380.2.0: us-west-1a/i-355fb16d
    1.3.6.1.4.1.34380.2.1: MYSUPERSECRETKEY
    1.3.6.1.4.1.34380.3.3: puppet-dashboard-group-name
(#7244) Add autosign_command parameter

This adds a `autosign_command` parameter to the puppet config which allows for running an external command to determine whether a certificate should be automatically signed or not. The command is passed the certificate name as the first argument. The command should then exit with status `0` to indicate that the certificate should be signed, and status non-0 to indicate it should not be signed.