Added Sign extension for assembly certificate signing 

This adds support for PFX certificate signing
(a.k.a Authenticode not to be confused with strong naming)
using the standard Windows SDK SignTool
Example usage:
```
Task("Sign")
    .IsDependentOn("Clean")
    .IsDependentOn("Restore")
    .IsDependentOn("Build")
    .Does(() =>
{
    var files = GetFiles(solutionDir + "/**/bin/" + configuration + "/**/*.exe");
    Sign(files, new SignToolSignSettings {
            TimeStampUri = new Uri("http://timestamp.digicert.com"),
            CertPath = "digicert.pfx",
            Password = "TopSecret"
    });
});
```
Noooo! (FilePath should be dumb, and this ties it to the FileSystem making it impossible to unit test properly)