Proof-of-concept dependency API.

Addresses #22 

TODO/Questions:

* Why is `SpecLite` used instead of full `Gem::Specification`? Should we store both, or add required dependency data to `SpecLite`?
* Is `Index` the right spot for this?
* Tests.
* Documentation.