ERRAI-590, ERRAI-850, ERRAI-851: Implement new IOC container (more description below).The new container uses code genererated in multiple files instead of a single monolithic file. At compile time an implementation oforg.jboss.errai.ioc.client.container.Factory is generated for each bean.The factory is responsible for requesting dependencies from otherfactories to wire the bean, running code generated by decorators,and cleaning up when the bean is destroyed.The GWT.create calls for the factories are generated in theBootstrapperImpl. The BootstrapperImpl now only registersfactories with their respective contexts.This container has the following differences from behaviourin the 3.x version of errai-ioc:* Normal scoped beans must be proxiable.* The @New qualifier is not supported.* Normal scoped beans (except @Entrypoint or with @Startup) are lazily instatiated.* @Alternative beans must be explicitly enabled (even if no other beans match).* Resolution of types behaves like CDI. Some cases that worked in 3.x may now be ambiguous.** Injecting a common supertype of multiple concrete classes is ambiguous.* Different API for programmtically adding beans to bean manager.
- move the javax.enterprise support package to be a top-level module so both errai-ioc and errai-cdi can depend on it. - add support for @Specializes in errai-cdi. - cleanup the way that event qualification is handled to make it more clear and consistent. - introduce the @Default qualifier to be consistent with server-side CDI.