Fixed a bug where substitutions would fail if none were supplied.
Extract build environment computation to a separate function so it can be used in isolation.
Dependency::chain now fails if there are any unresolved dependencies - good default behaviour.
Context now provides methods to calculate the depndency chain. Refactored build code to use this.
Bumped version.
Don't use a separate configuration object - context now supplies the default in ALL cases.