Implements gf (go to file) and <C-w>gf (go to file in new tab) for Visual mode

This resolves #1351. Please review carefully because I want to make sure that I have conformed to the design and testing strategy of this area of the code. Please don't feel bad about requesting any refactoring or further unit tests or anything because I am well aware that may need to be done.
See this for a reference 

https://github.com/jaredpar/VsVim/blob/master/Src/VimCore/CoreInterfaces.fs#L18

This actually creates a discriminated union vs an enum.  This one has no parameters so it functions like an enum except that the only possible values are the ones listed in the definition.  With a traditional C# style enum any numeric value is always valid (via casting an interop).