New UserIO Interfaces

These are the new interfaces for the user i/o. In the UserIO namespace,
theres a Pull and Push class. Push is all the printing to the screen,
pull is all the user input.