Add --no-set-foreground option to parrot to execute the tracee in the background.

Currently, parrot allows the tracee to set its process group ID to its own PID and
set its process group as the foreground process group of the session by default,
which may break the program which first calls parrot and then needs to use
terminal (to use terminal, the program must be in the foregroud process group).
Merge remote-tracking branch 'ccl/pull/651/head'

* ccl/pull/651/head:
  Add --no-set-foreground option to parrot to execute the tracee in the background.
This whole commit comes from spectool branch

The reason to create this special branch is that parrot_package_run is
broken due to the introduction of native-fd branch.
set the schema of software db
Download, checksum, uncompress dependencies
Change the format of specification, for each software, the user should specify the version, distro.

Some software, like git, after compiled, you can not rename the directory, you can not move it.
Add environment construction; mountlist construction
Rename files
New specification: allow the user say I want to run cmsDriver.py on
CMSSW_5_3_11 of slc5_amd64_gcc462
add scripts for local and condor execution engines
modify db schema
Add local application parser
local execution engine done
Local test passing!
Change the name to layer_cake
rm version1.json version1
Give software the OS information
Rename softwrae DB
add ec2 resource db
Add ec2 batch_type