Add support for adding salt grains via puppet

Example:

salt::grain{ "parsoid":
  grain => "deployment_target",
  value => "parsoid";
}
salt::grain{ "mediawiki":
  grain => "deployment_target",
  value => "mediawiki";
}

The above would add parsoid and mediawiki to a grain's values,
allowing the minions to be targeted by grain values:

  salt -G 'deployment_target:parsoid' test.ping

grain-merge ensures that a value is merged into a grain's list
uniquely.

Change-Id: Ie75ee013412950234fc06ab7d295c9cb703b29fe