improve error messages
enable credentials cache and recursive builds by default
support passing in credentials to add a project