Make AutoCompleteRequest.WordToComplete null safe
Add AutoCompleteBufferContext
Refactor getting AutoComplete context to AutoCompleteBufferContext

This way it can be reused elsewhere
Make AutoCompleteOverrideHandler deal with only the current type

It was originally designed to return all overridable members for all
available types.

The API could well be static but I don't want to break the pattern
with the other non-static APIs.
AutoCompleteOverrideHandler: get BufferParser in constructor

Apparently this is the way the solution context is defined. I do not
know why.
Add AutoCompleteOverrideModule
AutoCompleteOverrideResponse: remove ICompletionData constructor

This would not make sense in this context. It would probably not be
correct anyway. Besides, it does not set the OverrideTypeKind enum
properly.
AutoCompleteOverrideResponse: fix OverrideTypeKind serialized as int
Fix override target getters returning non-virtual members

Not sure if this fixes every problem.
Use IType interface instead of IUnresolvedTypeDefinition

The IUnresolvedTypeDefinition interface did not play nicely. For
methods, it returned the current method even if it were not virtual.
This returns all object-derived virtual methods (I only tested methods
at the moment): GetHashCode(), ToString(), Equals()
Make AutoCompleteOverrideResponse use an IMember constructor

This saves a lot of code
Rename AutoCompleteOverrideResponse -> GetAutoCompleteOverridesResponse
Rename to GetOverrideTargetsModule
Rename to OverrideHandler
Rename to GetOverrideTargetsResponse
Add RunOverrideTargetRequest, RunOverrideTargetResponse
Start RunOverrideTarget
Refactor getting overrides to OverrideContext

Clear and usable by other callers as well
OverrideContext: make BufferParser public w/ nice name
OverrideContext: Refactor to GetOverrideTargets()