Fix metadata nested constraints

- Fixes #103
- Fixes #182 

I wrapped this up in a [test case](https://github.com/RiotGames/berkshelf/blob/metadata_dependencies/features/install_command.feature#L241-L272) based off of #494's reproducing steps : 

```cucumber
Scenario: When a version constraint in the metadata exists, but does not satisfy
  Given a cookbook named "fake"
  And I write to "Berksfile" with:
    """
    site :opscode
    cookbook 'fake', path: './fake'
    """
  And the cookbook "fake" has the file "metadata.rb" with:
    """
    name 'fake'
    version '1.0.0'

    depends 'berkshelf-cookbook-fixture', '~> 0.2.0'
    """
  And the cookbook store has the cookbooks:
    | berkshelf-cookbook-fixture | 0.2.0 |
  And I successfully run `berks install`
  And the cookbook "fake" has the file "metadata.rb" with:
    """
    name 'fake'
    version '1.0.0'

    depends 'berkshelf-cookbook-fixture', '~> 1.0.0'
    """
  When I successfully run `berks install`
  Then the output should contain:
    """
    Installing berkshelf-cookbook-fixture (1.0.0)
    """
  And the cookbook store should have the cookbooks:
    | berkshelf-cookbook-fixture | 1.0.0 |
  And the exit status should be 0
```

This involved ditching the lockfile SHAs. After some benchmarking, I realized that it wasn't actually saving any time and just a more confusing algorithm to parse. Plus it introduced this bug that was actually fixed in the resolver long ago.

For those wondering why I had to drop the SHA: we were only SHAing the `Berksfile`, so changing anything in the `metadata` was permanently locked after the initial install. Any changes to that source would politely be ignored unless the actual contents of the Berksfile changed. And even then, you ran the risk of the graph being built incorrectly. With the SHA gone, not only is the code easier and the tests are less annoying to write, but we force the full dependency graph to be built and evaluated.

/cc @jhowarth @bluepojo @reset @ivey @justincampbell