"kpm pack" identifies source files outside of project root and packs them

parent #570 

The original implementation only packs source files inside project root dir. In this PR, if a source file is out of project root dir but in the solution dir, we pack it as well.
I would move this to PathUtility in the runtime and add a unit test for it. It's potentially broken already if dir doesn't have a trailing slash:

```
IsChildOfDir(@"c:\food\x.dll", @"c:\foo")
```

The above should return false not true.