Begin to add support for builtin functions (escape, exists and localtime)

I have begun to build out a feature to support invoking Vim builtin functions. Right now I have chosen one with zero arguments (`localtime()`), one with one argument (`exists({expr})`), and one with two arguments (`escape({string}, {chars})`). I have not yet done any with optional arguments, nor any user-defined functions.

I am submitting this pull request in order to start the conversation about what I need to refactor here. I am thinking there is some stuff from the `BuiltinFunctionCaller` that will probably need to get pushed down into the core of VsVim, but I wanted your input on what layer each thing should live in.

I've been excited to see all the activity lately and see you burning through the regex issues, etc. I hope that I am going the right direction with this feature as well.
Can we add the following here 

```
[<NoComparison>]
[<NoEquality>]
```

My intuition is instances here shouldn't be comparable / equatable