Create packager-specific DSLs

:red_circle: :construction: :construction_worker: 

This PR permits the user to define custom packagers on the project. For example:

```ruby
name 'chef'
# ...

package :msi do
  parameters upgrade_code: 'ABC-123'
end

package :pkg do
  identifier 'com.getchef.chef' # formerly Project#mac_pkg_identifier
  sign true
  signing_identity 'whatevs'
end

package :rpm do
  sign true
  signing_passphrase ENV['SUPER_SECRET_PASSPHRASE']
end
```
Where does the `UpgradeCode` GUID get generated now? This should be unique per Omnibus project but once generated it shouldn't change for a project. It looks like the same `UpgradeCode` was hard coded in the 3.x series of Omnibus:
https://github.com/opscode/omnibus/blob/3.0-stable/lib/omnibus/generator_files/windows_msi/parameters.wxi.erb#L8