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.
Oh, I completely forgot about children. Yeah, in that case at least the shallow copy is always necessary and this optimization would only work for childless elements like `<Spinner />`, so probably not worth it at all. Anyway, right now, since `getDefaultProps` is a function, it'll return a full copy instead of a shallow one, this might lead to subtle-breakage when upgrading; probably not an issue in practice though given that props is supposed to be immutable.