Minor doc fixes
Refactor constructor a bit
Nicer error on download failure
Add a util class for miscellaneous things
Disallow empty metadata keys
Empty metadata generator
Nicer error if scripts can't be executed
Misc fixes, and add a new cli command for generating empty modules