Small syntax updates to Classes.js

I'm just playing a little bit with this and there are some interesting syntax bits to consider here.

* Property initializers will all need a semi-colon at the end. I don't think there is a way around that (unless of course you want to rely on ASI) – this does actually complicate auto-binding a little bit and makes it look more foreign to regular class instance methods. Of course, that doesn't prevent anyone from just auto-binding all functions; it might very well become the canonical way of defining all functions within a react class.

* Let's use Flow because it is at this point more expressive than TypeScript. Assuming Flow is more descriptive, the TypeScript version of the same code will just strip out some things. In your example, since you are defining `width` as a default prop, the prop itself should be nullable. Flow also puts semicolons at the end of type definitions in objects.
This is actually interesting. I thought default props must be deep merged to prevent subtle issues around object/array references but in reality you can lazily merge values given that props should be immutable. However, if props are immutable, you don't actually have to shallow copy this object at all, right? The fast path, if no props are passed in from the parent, would to just share defaultProps across all components, and essentially do `copy-on-write`, right?