Proposal for enabling shorthand notation for object literal properties

This allows ES6 shorthand object literal property definition.  This addresses #418. e.g.:

```TypeScript
var  a;
var x = { a }; // equivalent to {a : a }
```
Notes:
* Only identifiers are allowed, keywords are disallows ``` { var } ```
* Qualified names are not allowed ``` { a.b } ```
* Any rewriting that would normally happen on the initializer should still occur. e.g. 
```TypeScript
module m {
    export var x;
}
module m {
   var y = { x }; // should emit { x : m.x }
}
```


This seems highly undesirable.  We now have a tree that has multiple tokens in it that have the exact same data (i.e. same position/width/etc.)

These trees break rules and lead to funky situations.  For example, will the token show up multiple times when getting the children in the services layer?   What should features like the formatter do here?  Will formatting {a} end up with {a:a}?

We should ahve a new node that represents this type of property assignment.  

Or, just dn't have an initializer.