Fix the buy button occasionally cause null reference error
Introduce ShotgunTower class, which shoot spreading bullets

The new class inherits normal Tower.

Serialization format is also changed to include class names of towers
to restore correct classes on deserialization.
Introduce custom inheritance function to avoid problems of new operator

We have been using "SubClass.prototype = new SuperClass" syntax to inherit
a class, but it's not intuitive way of writing and also have some problems.

There are many ways to address this problem, but defining custom inheritance
function to insert intermediate class to the inheritance hierarchy seems to
be the best.  We also have an opportunity to fix the subclass's constructor
property to point to the correct function object.