Remove todo for null object pattern.

See: http://en.wikipedia.org/wiki/Null_Object_pattern
Remove todo for multi-delegator definition

We define attributes and delegators on multiple lines for clarity and so
they can be documented better.
Update shellout helper to support ARGV array
Add Mac pkg packager
Add functional test for mac packager component
Integrate MacPkg with Project

* Add delegation for configuration needed by packagers in Project
* Update mac_pkg functional tests to verify MacPkg uses Project API
  correctly
* Update test fixtures to match correct project layout
Integrate Project with Packager::MacPkg

replace placeholder code with code to build the mac pkg via the
Packagers::MacPkg component.
Add fallback for mac pkg identifier when not provided.
Ignore packages created by functional tests
Store intermediate packaging products in var/cache

Using world-writeable directories (like /tmp) can cause symlink attack
vulnerabilities.

* Only Packagers::MacPkg uses this for now. AIX packaging still uses
  /tmp
* The cache dir can be relocated by configuration, so an additional
  option for `package_tmp` is added to the config.
* Add delegation in the Project class so that packagers use _only_ the
  project for input.
Merge branch 'mac-pkg-wip'

Builds on Mac OS X will now produce Mac .pkg packages instead of makeself
sharballs. This is a breaking change in the following ways:
* The obvious format change. Automated installation scripts need to use OS X's
  `installer` program to install the package.
* Building OS X packages requires you to place a welcome.html, license.html and
  background.png file in the files/ directory of your Omnibus project. In
  return you get a nice customized installer.
Bump project version to 2.0.0.alpha.0

The previous merge included a breaking change, so the project major
version is bumped.
[CHEF-5021] Include "files" var which adds to install_path

This includes the ability to include files/folders outside of
/opt/{project} that you may want included in the full package.
Add files method to set or read the files string or array

This commit adds a files method so that you can either set or read
the files string or array.  This allows initial for testing to
inspect the value of @files.
Remove unnecessary blank lines
Call it extra_package_files to be more verbose

Add note that this only works for RPM, DEB and Makeselfinst