feat(transpiler): map type declarations to dart.

ES6's const is Dart's final, so the type declarations are changed to
reflect that:

  untyped                   typed
var a -> var a;           var a:T -> T a;
let a -> var a;           let a:T -> T a;
const a -> final a;       const a:T -> final T a;

Still needed is support for Dart's const. Temporary moved all const
expressions to the .dart/.es6 specific files.
@mhevery Agree. Issue is we have to worry about dart's compile-time const right now, because there are expressions where dart requires consts - like case-switch statements. Annotations do not work in this case, as currently the only functions and classes can be annotated. Here are two proposals:
- special variable naming convention. You write``` const CONST_FOO = 3 ``` and it becomes to ``` const CONST_FOO = 3``` in dart (instead of ```final CONST_FOO``` as it would otherwise).
- special function that the transpiler notices when used in variable init: ``` const FOO = const(3) ``` becomes ```const FOO = 3```. For js we can introduce const = identity_function.

@vicb Yeah, that sounds like the right thing to do, but I am not sure if it the current AST is expressive enough to handle it as a proper AST transformation. I will try to move this to a separate transformation.