New shepherd, lots of changes

Refactored .compile() to be much more readable and have more explicit steps.

Refactored ._getResolver() to optimize for minimal simultaneous anonymous functions outstanding. Also building the graph from the bottom up instead of top down (so the only nodes waiting to resolve are the ones currently building, they call the dependent nodes when they're finished resolving).

Fixed the way silent dependencies work such that the non-silent dependencies depend on the silent dependencies explicitly.

Hello sho, eford, don, 

Please review the following commits I made in branch 'jeremy-perf'.

943ff2fb4e659b60fb8774ddc9e61edb5af8e0a5 (2013-03-03 13:35:26 -0800)
Refactored .compile() to be much more readable and have more steps. Refactored ._resolve to optimize for minimal simultaneous anonymous functions

R=sho
R=eford
R=don