Build image on a separeted workspace, lock building image while another process running

This PR is related to the issue #52

NOTE: This PR has to be merged to master, after merging #82 because this feature depends on the feature implemented in #82 . 
No, its generates `/app/images/workspace/<git_commit_id>` because `File.dirname` gets directory path from `path`