Windows support merge

Implements support for windows, including all options and commands. Not tested for breakage in *nix but would be incredibly surprised if any occurs.