Refactor how we handle loading dirs for software files.

This came about because I found myself trying to debug and oddly placed `can't convert nil into String` exception, while attempting to build a project. 

Turns out I wasn't running omnibus in `bundler` context, so it couldn't load up the gem metadata. In this condition, the error happens when trying to evaluate line 293. `Omnibus.omnibus_software_root` was `nil`, hence the boom.

I felt that letting it fall through, like there was a problem with the places it looks for the software files, was a reasonable course of action here.

So, this addresses an edge case, and I threw in a silly test for good measure.