Params arguments working

Pester tests also updated to work on PowerShell 2.0 (where c# with default values doesn't appear to compile, even with -Language CSharpVersion3)

Code could use some serious refactoring; there's a lot of logic in some big blobs.