In order to guarantee BaseControl and Control are fully comparable in the
BaseControl level this patch introduces a refID interface, so the objects
can safely be comparable based on this interface.
Separate edit control code to OSX and other OSes code. Add a delay
between accepting key presses in edit field. If any keypress comes
earlier it is just thrown away.