improve warning message
delay creation of callbacks into editor until editor is initialized

how exactly do closures work?  it's weird that it could copy uninitialized
variables from the editor's private closure and then be unaffected by
initialization later

fixes #691