Fix test failure and restructure the BuildContext execution.

+ Fix test failure with the BuildContext that was occurring because the
  stop_on_error flag was not having the intended effect.
+ Removed the BuildContext#_pump method and replaced it with
  BuildContext#_chain_rule_execution. The new method instantiates
  RuleContexts for each rule as it iterates through the rules that need
  to be built. It then uses deferreds to chain rule execution depending
  on the resolution of dependencies.