convert puts to use logger

rather than output messages to stdout directly, go through
the logger so that these statements can be hushed by turning
off logging.
subprocess output should go through the logger

Controlling where output is sent is necessary if you want to use fpm as
a library rather just a command line tool.

This is implemented using the open4 rubygem because the open3 that ships
with ruby 1.8.7's stdlib doesn't set $? so you can't get the exit
status of the process.

The negative side effect of this change is that it introduces buffering,
so you don't get stderr and stdout in the order in which they were
output.  And the output isn't sent to the terminal until the process has
completed, which is annoying.  Perhaps it's possible to do something
with threads to solve this problem.
Merge branch 'master' of git://github.com/jordansissel/fpm into sshhh
Initial OS X package support, #317.

Basic support for OS X flat packages (.pkg)

- input/output
- output supports scripts, postinstall actions (using --info option),
  ownership option and bundle-id-prefix option
- requires pkgbuild (therefore OS X 10.7+ only), pkgutil for input
- no tests yet

ignore .DS_Store

ignore .pkg

identifier gets its own method

first few osxpkg spec tests

osxpkg: extract name and version from PackageInfo on input

osxpkg: rename option bundle-id-prefix to identifier-prefix

- 'bundle-id' is ambiguous, given the various 'bundle'-related logic possible with OS X packages

osxpkg: fix old 'osx_' attribute prefix to 'osxpkg' in osxpkg.erb

New option: --osxpkg-dont-obsolete, to add files to 'dont-obsolete' element in PackageInfo.

osxpkg: Define public/private methods.

osxpkg_spec: Tests for basic attributes through input/output
Merge pull request #332 from timsutton/4df9617b8a3e71ac82b4dadb8cad28cded66159f

OS X package support
update changelist
remove unused imports, some code style
Fix osxpkg spec tests that should have been skipped on non-Darwin platforms.
some osxpkg spec tests can still run, not all of them
Merge pull request #334 from timsutton/fix-osxpkg-spec-skip

OS X spec tests, properly skip on non-OS X
fix json imports
use structured logging for python package
Merge branch 'master' of git://github.com/jordansissel/fpm into sshhh
updated CHANGELIST to include logging changes
allow unsetting of epoch for rpm target packages

commit 3b5853e allowed target packages other than rpm to unset epoch
when --epoch was an empty string.  That didn't work with the rpm target
package because of commit d8f2ac which set epoch to 1 for rpm packages
even when epoch is an empty string.

This commit makes a distinction between nil and an empty string: when a
user passes an empty string for epoch (--epoch "") no epoch is set.
When --epoch is ommitted completly, it defaults to 1.
Merge pull request #333 from hellysmile/master

remove unused imports, some code style
Merge pull request #330 from jaybuff/sshhh

Make all fpm output go through the logger
Merge pull request #336 from jaybuff/rpm-epoch

allow unsetting of epoch for rpm target packages
- use cabin 0.6.0's new logger.pipe method.
- force string for test