Added #addin directive for NuGet addins

Makes it possible to load and reference addins via NuGet

Sample script
```csharp
#addin "Cake.AliaSql"

AliaSql("Rebuild", new AliaSqlSettings{ToolPath=""});
```

This will give an output  similar to (It outputs an error as I'm sending in bogus settings, but it's from the AddIn code)
```
Installing 'Cake.AliaSql 0.4.1'.
Successfully installed 'Cake.AliaSql 0.4.1'.
Addin: Cake.AliaSql, adding Reference C:/temp/dev/github/cake/tools/Addins/Cake.AliaSql/Cake.AliaSql.dll
Error: Path cannot be empty.
Parameter name: path
```

What it does is basically
  1. Check if AddIns folder exists if not it creates it
  2. Then if checks if the choosen Addin exists and if it contains any assemblies, if not it will try to find nuget.exe and install the package
  3. It will reference any found assemblies 
 
I would prefer a INuGetPathResolver interface here.