Allow to expose fields of the underlying type of an abstract with a different name.

This patch allows abstracts to expose fields of the underlying type with an alias. In addition to a regular definition like @:expose(push, unshift) it also allows a definition like @:expose(push => pushEnd, unshift => pushFront). It's also possible to mix both definition types like @:expose(push, unshift => pushFront).
Merge pull request #2180 from frabbit/patch-1

Allow to expose fields of the underlying type of an abstract with a diff...