llvm fixes plus cleanup

This patch combines @manderson26 fixes for bugs in the C glue code that cause dep-selector to behave incorrectly on Ruby 2.0+ when compiling with llvm and some cleanup I've done to remove the 'uuidtools' dependency and make dep-selector easier to use via bundler with a `:path` option in the gemspec.

To remove the `uuidtools` dependency, I use `SecureRandom` instead, which is only available on Ruby 1.9+. Enterprise Chef (all flavors) and Open Source Chef include ruby 1.9+ in the omnibus builds (and are locked to a specific version via bundler), so those are okay. However, the old chef-server has an unrestricted dependency on `dep-selector`: https://github.com/opscode/chef/blob/9bf0f8f91e9051c5ed8fe8874858f7e14ee0fba7/chef-server-api/chef-server-api.gemspec#L23 This means that a gem install of the 10.x server on ruby 1.8 would fail if we release this without also locking `chef-server-api` to the current release version of dep-selector.

Thoughts?
cc: @opscode/client-eng