Standard and abstract base class for `code.InteractiveConsole`

There is a lot of scenario which users need to embedding a custom InteractiveConsole with custom namespace inside their application.

There is code.InteractiveConsole in Python standard library. In addition, for third-party libraries, there is ipython, bpython, ptpython, They have different low level implementation and interactive appearance. But their abstract behaviors are similar.

It would be awesome for python to add a abstract base class for interactive console to cover all features and behaviors of what a interactive console should included. And provide a standard for all third-party interactive console to follow with.

User can make their code drop-in switch between different interactive console without refactoring workload.

To support third-party console like ptpython and so on. More feature and methods should be add toward existed code.InteractiveConsole.