A few optimizations to reduce the Closure Compiled size

I have added a few optimizations to save 282 bytes (10%) on the Closure Compiler processed output, also I have added jsdoc annotations to mark the constructors so the Compiler knows it is safe to use "this".

Please see note on 83d30df about that change.