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.