Add -Quiet parameter to Invoke-Pester

Fixes #223
Adds -Quiet parameter to Invoke-Pester that disables Write-Host output
to screen. Write-Screen function is added that wraps Write-Host
function. Write-Screen should be used instead of Write-Host everywhere
inside Pester to ensure all Host output is disabled when needed.
Patching the Out-Host

As @dlwyatt pointed out Out-Host was used here for a reason, to prevent
the CodeCoverage output from becoming the part of the default stream and
thus mixing with the output of the PassThru.
Replace colors with output types on Write-Screen

Improving the abstraction of the Write-Screen function to use output
types instead of colors.  That way we can easily set different color
sets for light and dark backgrounds if we choose to do that.
Merge pull request #224 from pester/Quiet_mode_for_Invoke-Pester

Quiet mode for invoke pester
Fix Write-Screen error output and color
Use Test-Path (which produces no errors) instead of Get-Variable
Update Changelog
Implement ExcludeTags, with tests. Fixes #231
Update changelog

Fixes #231
Different color schemes for dark and light backgrouds

There is only limited amount of colors that are readable on both
DarkBlue (ISE, Console) and White (PowerGUI) backgrounds. To use more
colors these have to be differentiated with Dark and Light color
schemes.
Update version to 3.2.0

Updating the version to check automatic publish to NuGet and choco.
Add basic tests that validate the manifest, changelog and tags

When a new version of Pester is released there are three things that need to be edited and done:
- the module manifest must be updated to reflect the correct version
- the changelog must be updated to contain the current version and release change notes
- the commit must me tagged with the correct version

I had problems remembering all these so there are few basic tests that validate the build.

There are few tests that run only when the git.exe is available. So after tagging a new version you should run the .\bin\Pester.bat from the git to validate the changes. I will have to check on TC if all the tests run.

Known bug: this format you might use with tags 3.0.6*-beta* is not supported (yet?)

Function that ups the version automatically might follow.
Update changelog: Validate manifest version, changelog version and tag version
Added BeforeAll and AfterAll commands

Per community request.  BeforeAll and AfterAll is syntactic sugar for:

Describe 'Describe Name' {
    try
    {
        <BeforeAll Code>
        <Describe Body>
    }
    finally
    {
        <AfterAll Code>
    }
}

Both command can also be used inside a Context block with the same effect.
Clean $error variable

Code now uses -ErrorAction Ignore instead of -ErrorAction SilentlyContinue when the user is running PowerShell v3 or later.

Because of the various scopes in play during Mocking and InModuleScope, the code to look up whether to use Ignore or SilentlyContinue had to be exported from the Pester module in some way.  I opted for a function instead of a global variable, as it's less fragile.
Removed commented code
Merge pull request #237 from dlwyatt/Before_After_All

BeforeAll / AfterAll / -ErrorAction Ignore
Added chocolateyInstall.ps1

When users install our nupkg from Chocolatey, the module will automatically be instaled to $env:ProgramFiles\WindowsPowerShell\Modules\Pester .  For downlevel systems where this isn't part of the default PSModulePath, the machine PSModulePath environment variable will also be updated.
Merge pull request #238 from dlwyatt/ChocolateyInstall

Added chocolateyInstall.ps1
Merge branch 'master' into LanguageDecoupling

Merged latest changes from master into LanguageDecoupling.  There are still some conflicts to resolve, around the changes to output / colors that were made in both locations.  Will go through all of that next.

Conflicts:
	Functions/Context.ps1
	Functions/Coverage.ps1
	Functions/Describe.ps1
	Functions/PesterState.ps1
	Pester.psd1
	Pester.psm1