Add a syntax to set a target only for a specific project

Sometime, an option in one project will use the value of an option from
an other project, or a project will use the output of an other project
as input file. In such cases where a single command will use different
projects, it is now possible to set a target only for a specific project,
with the following syntax:

 $ burps build --target project:target
config_p: check if next value is a hash

Before this change, when the 'a/b' option was defined as a string and
you queried 'a/b/c', the program would die with a perl error. Now it
will return an undef value for the option.
Redirect targets globally

Before that change, when a target was redirected to an other one (when
the content of a target is a string or array of strings rather than an
hash), the redirection to an other target would be applied only for the
options from the current configuration file.
Add a sha256 function in templates
More explicit error message

Indicate which project does not have a git_hash set.