Add TaskFailureException

Summary:

That way we may know what task just failed, and return different
suggestion for users.
Support --build-dir option to install command

Summary:

That way we can specify the build path to a ramdisk or anything else.

Changes:

- Remove use of using Config::getVersionBuildLogPath