Large sync to catch up to my local repository

Large restructuring of the keyboard handling to allow N-key rollover.
Added different layout options for the virtual keyboard.  Fixes to the
8080 interrupt handling.

I've been developing using my local SVN repository.  Sorry this doesn't
track each change but is an all-at-once catch-up sync.