Add support to pack the main project
- Added new entryPoint field to project.json
- The entryPoint is the application that should be used as the EntryPoint.
Since "root" is just a meta package that doesn't have anything loadable.
- Refactored the logic around copying files to the root to make it match
what happens when we're deploying source.
- Move reports to PackRoot instead of the ctors of each packable type