Fix misspelled function name.
Fixes to MSBuild function signatures

Use of partial application to define API functions leads to unexpected
signatures and the inability to name and document parameters. For
example, the signature is displayed by Intellisense when
MSBuildWithDefaults is defined using partial application:

val MSBuildWithDefaults : string:targets -> (seq<string> -> string list)

When we redefine MSBuildDefaults without partial application, we get the
following equivalent signature.

val MSBuildWithDefaults : string:targets -> projects:seq<string> ->
string list

This is much less confusing than the original signature, and we can name
and document the 'projects' parameter.
Replace "." with "_" in MSBuild target names

MSBuild has the ability to build a specific project from a solution. It
does this by creating project-specific targets in the generated
.metaproj file (you can see the .metaproj file with SET
MSBuildEmitSolution=1). For example, to build only the project named
"TestProject" you can do the following:

msbuild /t:TestProject

It also allows you to build targets other than Build with the following
notation:

msbuild /t:TestProject:Clean

The problem comes in when you have dots in your project name. The
following won't work, because MSBuild automatically replaces dots with
underscores when creating the project targets:

msbuild /t:TestSolution.TestProject

So you have to remember to replace dots with underscores when building a
project target:

msbuild /t:TestSolution_TestProject

I thought it would be nice if the MSBuild tasks in fake could
automatically perform this replacement, so that you can specify the
project target using either notation.