Refactored transitive dependency resolution

- Fixed a bug where the package record was storing transitive deps
  instead of immediate deps, causing an error when transitive deps were
  removed.
- Release version deps are now resolved and cycle checked independently
  of later transitive dependency flattening (for compilation & compiled
  package lookup)
- Director now only sends immediate dependencies to the agent when
  compiling packages

Signed-off-by: Andrea Law <alaw@pivotal.io>
Added integration test to prove that transitive dependencies can be removed

Signed-off-by: Andrea Law <alaw@pivotal.io>
Added fix for 'corrupt' package records

- During dependency resolution (upload release), if a package record for
  a release with a matching fingerprint has incorrect immediate
  dependencies listed, it is updated.
- This fix can eventually be removed

[#79993652]

Signed-off-by: Andrea Law <alaw@pivotal.io>
Refactor "require 'rspec/its'" into shared_spec_helper.rb

Signed-off-by: Andrea Law <alaw@pivotal.io>
Change double-quotes to single-quotes

Signed-off-by: Andrea Law <alaw@pivotal.io>