[Mono.Debugging.Soft] Resolve symbolic links when comparing file paths

Fixes bug #21617
Fixed evaluation of enums
Modified PropertyValueReference to cache the value

This also happens to fix bug #22006 and bug #22013
due to the fact that the second time we evaluate
the property in order to get its children, the
ctx.Options.AllowTargetInvoke is false.
[Mono.Debugging+Soft] Added Adaptor.GetImplementedInterfaces(type)
[Mono.Debugging] Diplaying elements of IEnumerable
[Mono.Debugger.Soft] Sync with mono + EndInvokeMethodWithResult
[Debugging] Calling StructMirror methods sets InvokeOptions.ReturnOutThis so it updates value
[Mono.Debugging.Client] GetRawValue and SetRawValue wait evaluation to complete
[Mono.Debugging] Support for OutArguments when calling methods
Added EvaluationContext.SupportIEnumerable
IEnumerable also support explicit implementation of IEnumerable/IEnumerator methods
IEnumerable paging(load in bulks of 20) changes