Add ability to send log output to a file

Using PACKER_LOG=1 causes all the log output to be sent to Stderr. This
change maintains that backward compatility. Anything other than "1" will
be treated as a filename which will have logging appended to that file.
This is useful, for example, to always have debugging available without
cluttering up stdout (and without having to redirect stderr all the time).
Add PACKER_LOG_PATH for logging to a file

When the environment variables PACKER_LOG and PACKER_LOG_PATH are both
set the log output will be appended to the PACKER_LOG_PATH file.
Unused keys are invalid in templates [GH-104]
Error if unknown root level key in template [GH-180]
Merge pull request #168 from markpeek/markpeek-filelogging

Add ability to send log output to a file using PACKER_LOG_PATH
Clean up some of the log path detection code

/cc @markpeek I think this is much cleaner. Also, I made it so it
doesn't append by default... I like the idea of appending but it scares
me that for a bug report someone might put like a multi-megabyte gist of
logs at me. HAHA. We'll see.
website: add PACKER_LOG_PATH docs
Move AWS auth decisions to goamz [GH-160]

Currently the passed in AWS auth or AWS environment variables are
interpreted by packer. This change moves that logic into goamz in
order to support both the existing and instance based IAM role
authentication. This requires a corresponding change to goamz.
Update CHANGELOG
builder/virtualbox: support generic hash types [GH-175]
builder/vmware: generic checksum types [GH-175]
Update CHANGELOG
builder/common: support sha1/sha256 hashes
command/fix: boilerplate for the fix command
command/fix: fixer for iso_md5 change
command/fix: run the iso-md5 fixer
command/fix: properly replace the escaped </>
Update CHANGELOG for packer fix
website: document the checksum features
website: document the fix command