Incrementally cache the software builds in git

* Adds Guard support for both Rubocop and Rspec
* Removes Rake as a dependency
* Adds a git cache, with a tag for each software revision
* Builds all transitive deps before top level deps

Also - the cache works as the sentinel for building now, and fetching just looks to see if the software is there. 

Build order goes in the way specified in the Project file, and with transitive Software deps included. We build all the transitive deps *first* - and we batch all the project level dependencies to the end. That means you don't get stuck rebuilding ruby if you make a change to erchef. Note: you still get stuck rebuilding everything *else* in your projects dependency list. Unless we dramatically alter the way omnibus works (by creating more 'normal', but still prefix aware, packages) this is probably as good as we're going to get for a while. My advice: stick your most commonly build component at the *end* of your Project file. 

My local build vm takes 17 minutes to build the Chef Client on RHEL 6 - this patch drops it to 3.