smoke.scm: ordering (a correction)

The type 'Smoke' is used in the initialize-instance of
<SchemeSmokeBinding>, but was defined later in the file.  This meant that
this instance of the type name referred to the C++ type "Smoke", rather
than the coops-wrapped pointer used later in the file.  This patch moves
the Smoke typedef to the top of the file and corrects <SchemeSmokeBinding>
initialize-instance.
smoke-find-class: remove (contents moved to find-class method)
smoke-find-method: remove (contents moved to find-method method)
rename methodcall-callback -> handle-callback