Prefer return-early style to nested code.
Bring a critical method to the top of the list.
A slightly stricter regex for finding the git version.
Add missing require.
Refactor simplify the resolver implementation.

* Combine the queue and addtl (there was no need for a separation).
* Combine the manifests, dependencies, and queue into single a state object.
Set the homepage
Merge pull request #165 from anatol/patch-1

Set the homepage
Graph algorithms: cyclic?, tsort_cyclic.
Opt-in support for cyclic resolutions.

In the general case, resolutions of a dependency graph should be acyclic. In this case, detect cycles quickly during the resolution and backtrack when they are found.

But sometimes, we need to allow cyclic resolutions. Don't bother detecting them during the resolution, and be sure to use a cycle-supporting topological sort instead of the standard topological sort.

Fixes #159.
Fix ruby-1.8.7 breakage.
Style. Parentheses are not required here.
Style. Remove unnecessary whitespace.
Fix JRuby exception in posix run! method.

Works for jruby-1.7.9 in both 1.8 mode and 1.9 mode.

Fixes #161.
Include RubySL for Rubinius.
Upgrade Travis config for Rubinius.

The -18mode/-19mode syntices are no longer supported.
Fix ruby-1.8.7 breakage.
Introduce a runtime cache into the environment.

It is a general-purpose runtime cache scoped to the environment instance. It is not persisted anywhere. One use case is to avoid repeating an expensive operation across multiple instances of the same class.
Add missing require.
Refactor: avoid stubs in tests.
Some introductory functional tests on the git source.