Add @JSBracketAccess for defs representing [] access.

This generalizes js.Array.apply/update and
js.Dictionary.apply/update to an annotation, so that
it can also be used in user-defined raw JavaScript
types.

If the method has 1 argument, it will be considered as
reading the field. If it has 2 arguments, it will be
considered as writing the field. The result type of
the latter must be Unit.

The name of an @JSBracketAccess-annotated def is
irrelevant, but a useful choice is apply/update, unless
it conflicts with other existing methods.