More functional approach for ParseArguments

Good: static, methods, only 1 readolny instance variable left (+ mutable IArgumentMarshaler), algorithm more visible
Bad: error handling (exceptiona are not "functional")
Ugly: long type declarations