adds SubstCommandCompiler class and substshell factory function

SubstCommandCompiler substitutes [parts of] the filename of the actual
file modified where specified in the command.  substshell provides a
simpler constructor for a Guardfile.  This allows the user to use
wildcards when specifying files to be watched in Tasks but still take
specific action for the file changed.  See compiler.rst for an
example.