[WIP]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 . 
@ainoya  It seems that `workspace_path.split('/').last` is the same to `opts[:workspace_dir]` and `app_repository_name` is used only send workspace directory name to logger. I think this is not necessary.