Tests for utils.unarchive() + test data
Added utils.which()
Disable .encode() and .decode() calls added for py3; they prevent using binary data for subprocess input
Add support for xz archives

Fixes #1
Moved variables adding code from Environment to EnvironmentVariables to make it re-usable
Add build environment variables (Formula.build_envvar)