Return the exit code in ScriptExecutor

Solving issue #987

Now the exit code from the script in project.json need to be zero to ensure a successful build/pack/restore.
A few more words here. When the `TryGetValue` returns `false` it doesn't mean the script file is missing from the disk. It means user doesn't define a script block for the scriptName you ask for. For example

```
{
    "script" : {
        "prebuild": "../../prebuild",
        "postbuild": "../../postbuild"
}
```
For above `project.json`, if you ask for `prerestore` instead of `prebuild` or `postbuild`, it returns `false`.

So this conditional block is not used to check file's existence, but script block's existence.