Fixing key press detection for Opera

Resolves #400

I based this on how the jQuery Event object works. This should help protect us from similar issues in the future.

If we need to copy more properties from the original event object, add them to the "props" variable.