Don't dispatch to default-fn if non-printable.

This is normally a non-issue, but due to a weird JavaFX bug I'm seeing, after
pressing M-., we get a spurious KEY_PRESSED with keycode A followed by a
KEY_TYPED with the ASCII value for ESC.

The dispatcher sees the A and says "let's wait for the typed character", then
it gets the typed character and says "Oh crap, this is an ISO control
character, ignore it", so then it tries to dispatch based on the A, which no
printable UTF8 string to go with it.

That's not a problem if A is mapped by key code (which might be the case if A
were something like F1), but in this case A is not mapped to anything, so it
was getting sent to self-insert-command which then tried to insert '\0' into
the buffer, which was ungood.

Now we disallow dispatching to the default-fn in this case. We still get this
spurious event (which pops up an "A is undefined." error), which I'll have to
work around, but at least it doesn't result in garbage being inserted into the
buffer.