Remove "use strict", resolve `result` bug, error length check, and consistent naming

The only non-trivial change here is the "use strict". Currently it's impossible to declare variables to the global namespace because of Traceur's module pattern. For example, exporting a variable from a package is impossible. Trying to declare a variable as `Router = {};` throws a "Router is not defined" error, which makes working on packages very difficult.