Returning non-zero exit code on build failure is done in psake.cmd instead of in Invoke-Psake

Now Invoke-Psake newer exits whole PowerShell process, so it is possible to run psake more than once in one build server run.
Also it fixes problem with random freezes on errors. They happened because psake tried to find out if it is called by windows service and used ParentProcessId,
but Windows is not Unix;), and this Id can point to terminated or completely different process, and such process can again point to first process, and it causes infinite loops.

Also formatting changes in psake.ps1, now is the same formatting style as in psake.psm1
Avoided silent but still added to $Error redundant errors on loading psake.
Remove-Module "[p]sake" is the same as Remove-Module "psake" because the
pattern "[p]sake" matches just "psake" and nothing else. At the same time
Remove-Module does not emit errors when a pattern is resolved to nothing
(unlike in the case with a literal argument). As a result we eliminate the
redundant error silently added to $Error on every first loading of psake.
Enabled source information in task error messages shown by psake.
Proposed ($_ | Out-String) gets the error message with source information.
In contrast, the original ($_) gets messages without this useful info. Just a
name of a failed task is often not enough in order to locate the problem fast,
for example in a typical case when an error happens in a script called from a
task. Existing verbose error mode is too verbose in many cases when error file
names and line numbers in messages would be enough.
Defaults showed in psake-config.ps1 where different than actual defaults (defined at the end of psake.psm1)
Removed remove-item from psake.psm1, added [p]sake trick to psake.ps1

If someone imports psake.psm1 it is his responsibility to remove it, not psake, but when it is imported by helper script psake.ps1, it is our responsibility to not pollute PowerShell with many psake modules from many folders
Updated README file to point to new repo locations
Merge branch 'master' of github.com:psake/psake
Simplified loading modules
Added note to Include function that code from included file will be executed after code from build script.
Added RequiredVariables argument to Task function

Also unified formatting in Task
Fixed issue #7 - not using buildFile as taskList in Invoke-Psake, when there is folder, not file with name as task

Added -PathType to all test-path invocations
Fix for issue #23 - psake.cmd should exit with 0 when build succeeded

Also use of -ExecutionPolicy Bypass, which is even less restrictive than -ExecutionPolicy Unrestricted
Use of Cyan foreground color, instead of Blue to make it more visible on darker consoles

Cyan is also commonly recommended, for example in http://blogs.msdn.com/b/abhinaba/archive/2006/01/05/509581.aspx
Task duration shows duration of task, not of task and it's dependencies

Also added default duration of TimeSpan.Zero (to show in summary 00:00:00 instead of 0)
And added argument to Write-TaskSummary, to make it more readable where $stopwatch variable inside that function came from, and use of where-object instead of its alias ?, to also make it more readable
Warning (yellow colored output) when task failed with -ContinueOnError

Also some small stuff, unified error messages, comment formating, etc
Added -help switch to psake.ps1 instead of psake-help.ps1 script

Simplificated psake.cmd because of that (also removed some ifs that detected if help should be displayed, because they for example make it impossible to call task with name "help")