Insert semicolon after class definition with no constructor.

Previously:

Main = function () { }

now:

Main = function () { };
Dont avoid semicolon insertion after static field gen.

Previously, class Main { static function main() {} } generated:

Main.main = function () {
}

instead of (now):

Main.main = function () {
};
Change inherit to Inherit in $extend implementation, removing semicolon.

Both these are further common js warnings by linters.
Ensure class prototype, when not using $extend has semicolon inserted.

Class.prototype = {
    ..
}; <--
Ensure semicolon is inserted after package declaration.

var js = {}; <--

for package js;
Move ',' in field seperator to previous line.

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

instead of:

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

(Another jshint et. al warning)
Remove semicolon after $iterator and $bind implementations.

Unnecessary, and another jshint et. al warning.
Insert semicolons after enum definitions and function constructors.
Remove redundant space at end of __js__ block in string_rec

Unecessary, and causes a redundant ; to be inserted in generated js.
seperator -> separator, revert e920e98.
Merge pull request #2245 from deltaluca/dev_js_syntax_fixes

fixes for syntax of generated JS.