Ensure semicolon is inserted after class defn with no constructor

Main = function () { };

instead of

Main = function () { }

(This is a JSHint error).
Don't avoid a semicolon after static field gen.

class Main {
    static function main() {}
}

generated

Main.main = function () {
}

instead of

Main.main = function () {
};

(Another JSHint error)
Prototype/$extends jshint fixes.

Ensure a class prototype, when not using $extends has a semicolon
inserted after the prototype.

Class.prototype = {
     ...
}; <-- without, a jshint error.

Change inherit to Inherit and remove a semicolon after declaration.
Fixes 2 jshint errors about an unecessary semicolon, and constructor
names not starting with capital letter.
Only generate Math.__name__ if necessary, add ; after package defn.

before:

var js = {}

now:

var js = {};

etc.

Also moved from Math.__name__ being defined for js in Math __init__
to a special case (due to being extern) in genjs to generate __name__
the same way other classes have it generated on demand.
Move , in field seperator to previous line. fixes a jshint warning.

{
    x : ..
    ,y : ..
    ,z : ..
}

to

{
    x : ..,
    y : ..,
    z : ..
}