Issue #3 and #5: Add an interface framework, Add a message box

Also expands the main state to test the message box.