Added Interaction context manager to scoremanager.iotools package.

Use the interaction context manager to bundle together messaging for any given
UI exchange. Also added a factory method to IOManager.

Example usage:

    def do_ui_method(self, display=True):
        with self._io_manager.make_interaction(self, display=display):
            ...
            ...
            ...

The logic of the interaction context manager is extremely simply. The context
manager does nothing on enter. The context manager prints a blank line and sets
the hide_next_redraw session variable to true on exit.

The combined effectd of the context manager is to allow return statements
anywhere in the implementation of a UI method that will print out a blank line
before returning control.