Refactoring: core, scope and other

core:
* renaming unwrapSpreadDeclaration -> unwrapRestDeclaration
+ calling Scope.setOptions(options);

scope:
+ setOptions method

letConst:
+ work speed improvement

test's correction
Add 'return' to default class constructor in order to match the spec

January 20, 2014 Draft Rev 22 :
* The default class constructor definition is now “constructor(...args)
{return super (...args);)” if one is not explicitly provided (adding
explicit “return” is the change)
bug fix with loop closure and destructuring in loop declaration and inside loop

destructuring.js:
* Moving some methods from destructuring transpiler to core

core.js:
+ declarationContainsDeclarator

loopCloseres.js:
+ added core.declarationContainsDeclarator check to avoid false
destructuring declaration detection

+ test
Possibility to reset uncaptured variables (disabled by default)

main:
+ es5-shim require
+ possibility to pass plugin call

run-tests.js:
+ String#startsWith polyfill
+ possibility to read transpiler options from test file
* fixing of error handling

scope.js:
+ Scope#get

core.js:
+ getVariableDeclarationNodes method

Added a new plugin - 'optimiser'. This will fixed #22 . But for now it
disabled by default

+ tests