[feature]xiaojing&ruoran&zekai: add viff runner to project
[feature]xiaojing&ruoran&zekai: rename home to jobs(public)
Ruoran: Merge branch 'development' into 21-manually-trigger-run
Ruoran: udpate gitignore to ignore .idea/
[feature]Zhihao&Ruoran: add "build" array to job
[feature]ruoran: modify test config js to phantom
ruoran: ignore selenium jar file

please manually copy it to your root and use the same name for further use
ruoran: Merge branch 'development' into 21-manually-trigger-run

Conflicts:
	.gitignore
	public/scripts/jobs/index.js
[fix]Zhihao&Ruoran: extract build cruder to job cruder.

Because front end want to reuse backend module, could not write cruder
into module directly so fix it now. Will disscuss with Zekai later.
[fix]Zhihao&Ruoran: change implement of Jobs.findBuilds(jobid, data){}

Jobs.findBuilds(jobid, data){} now return data as array which is consist
of Build object.
improve some tests of builds.js.
[feature]Zhihao: do not merge this. feature for triger run.
[feature]Zhihao: trigger run

now the buildRunner.runbuild(jobObj, buildId, callback) will excute
callback after the spawn process is exit. the viff report will be
created at /temp/{job id}/{build id}/
[fix]zekai: fix upload path error - bodyParsor call multipart again
Merge branch 'development' into 21-manually-trigger-run
[fix]zekai: make sure the upload dir exists
Qiu&Zhaoyu: Merge branch '21-manually-trigger-run' of github.com:twers/Viff-Service into 52-job-detail-page
[refactor]Qiu&Zhaoyu: refactor the constructor of build class

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch fix-new-job-page-redirection
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	new file:   lib/views/header.jade
#	modified:   lib/views/layout.jade
#
[feature]Qiu&Zhaoyu: add builds app and setup the index routes
[feature]Qiu&Zhaoyu: return builds list