Moved input device classes into separate file.
Did a lot of work to prepare input devices. Made widgets better for extension and created windows. Decided upon layering scheme.
Working on Text Widget, incomplete