Do console completion lookup through LuaObject's dispatcher

* Restructures `dispatch_index` so the object hierarchy traversal, method lookup and method call are all separate.
* Adds `LuaObjectBase::GetNames` to use these functions to fill the name list for the console
* Makes the console use it, of course

The upshot of this is that as the dispatcher code changes to support new ways of doing things, the console will get those changes as well.

Fixes #1672.