Make more use of DefineConsoleMethod

Resubmission of #887 with some fixes.
Oh gosh, why is GitHub showing tabs as 3 spaces. Makes this very annoying.