Improve exception error when a software is missing
Add a config option for software_gems
Add a config option for local_software_dirs
Use the new configuration options when loading softwares
Refactor the way projects are loaded
Exclude build_version from shasum computation

Some build_version's are based off of a timestamp. Since build_version is used
in the shasumming at the project level (which is then used at the software
level), any project using a timestamp-dependent build_version would not
properly leverage git caching (it would always rebuild).

In the future, we will want to decouple build timestamps from versions.
Debug logging
Remove git cache dirs on tag instead of incremental