Refactor Shakefile.C into several modules
Simplify internal type signatures and fix compiler warnings
Move defaultBuildPrefix to Shakefile.C.Rules
Replace Env arguments by build prefix FilePath

Also remove Target argument from rule functions.
Add ToBuildPrefix type class
Simplify build rule function file signatures
Remove unused function and refactor
Update dependency file while compiling

Export objectFile from ToolChain module.
Bump version to 0.4.0
Add stir script and README to Extra-Source-Files
Refactor SourceTree combinators and buildProduct rule
Make SourceTree node function monadic and update rules

Rules now take a source tree in the Action monad, this allows
to have build flags determined by configuration actions (such as
querying the pkg-config database).
Return pkg-config results in the Action monad instead of IO
Remove standaloneToolChain combinator for Android
Refactor ToolChain prefix and tool action fields
Add functions for host specific executable and library extensions
Use command_ instead of deprecated system'
Remove unused function
Run additional NaCl toolchain commands in Action monad
Signal error on empty NaCl sdk path