Make more use of DefineConsoleMethod

Resubmission of #887 with some fixes.
Good catch :)

I HATE currect ```StringTableEntry``` typedef.... creates a lot of confussion, we need a class wrapper over ```const char*``` pointing to ```StringTable```