"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.
There is no `IReport` passed to `PackManager`. Actually, only `install`, `restore` and `add` are using IReport. Do we want to start to use IReport in `PackManager` in this PR?