Add project abstraction

The Project encapsulates the package.json and metadata about it, such as
file and directory paths.
Add wrapper for CLI methods
Add info command for dumping gathered details