hit, shot dispatch & demolish implement

hit処理をSprite.checkの呼び出し機能を利用しGame#update内でディスパッチするように変更。
衝突する側の処理も、これに習う。(該当するshot_obj呼び出し)
hit_obj, shot_obj呼び出しにはあいてオブジェクトが引数ではいる。これを無視するように実装。
Ongoing Game play if player alive

メインループ、ゲームステート:playの処理を、Game#updateの帰り値ではなくGame.instance.player.alive?の値で次のステートへ行くようにした。
updateの帰り値を期待するのはここだけだ。
しかし、updateメソッドはゲーム進行の判定を返すのには不適切と判断。
updateメソッドの処理は更新のみとすべき。
Chenge to be able to fire Enemy instance

AI中のfire行為をEnemy側に移動し、enemy.fireと書くように変更。
AI側のgame引数は不要となったが、現時点ではこのまま。スクリプターがGame singleton
classの存在についての知識を必要としないように配慮
Remove WeakRef in Enemy, Stage class

Enemy, Stage classからGame.instanceへのWwakRefを張っていたのを削除した。
この変更はコードデザインへの影響を及ぼす。
つまり、ゲーム・システム側（クラスやモジュール）はGame singleton classが存在することを前提とすることになる。
私はGameが二つ同時にプレイされる状況が想像できなかった。よって、この方針に問題はないと考えている。