feat: refactoring module main function, apply minor fixes and added testing suite
This PR contains the changes from #5 (which refactors the module so that it can be optionally used as a library instead of an npm executable, adds unit and integration test suites and applies some additional minor fixes, e.g. using the path basename as the generated project name instead of the full path) and applies some minor tweaks on top of it (the main one is removing an async function from the module implementation, so that the module can work correctly on nodejs < 8 without the need to transpile it using babel).
@rpl what is the state of this PR?
I'm working in a new feature to allow customize extension manifest #9 , but since this PR change a lot of files, I prefer get this merged first to avoid too much conflicts