webadmin,userportal: Upgrade GWT SDK and related modules

This patch upgrades oVirt UI technology stack:
* Google Web Toolkit  : 2.3.0 -> 2.5.1
* GWT-Platform (GWTP) : 0.6 -> 1.0
* GWT INjection (GIN) : 1.5 -> 2.0

More details can be found at:
    http://www.ovirt.org/Features/GWT_Platform_Upgrade

/-----------------\
| GWT Upgrade Log |
\-----------------/

 1. Modified EntityModelCellTable and IVdcQueryableCellTable to provide
    HasEditorDriver functionality through IsEditorDriver interface
    - this prevents conflict with 'void flush()' method declared by GWT
      AbstractCellTable (parent class of both custom table classes),
      i.e. implement HasEditorDriver (declaring 'T flush()' method) via
      IsEditorDriver interface
    - common HasEditorDriver functionality extracted out of both custom
      table classes into HasDataListModelEditorAdapter, eliminating
      duplicate code

 2. Modified @Path annotation values due to GWT EditorDriver generator
    being more strict when checking subeditor paths to resolve getter
    and setter methods

 3. Removed <includes> section for src/main/resources in pom.xml files
    since GWT Deferred Binding generators locate relevant resources
    via ClassLoader.getResource(String) and therefore such resources
    must be included on the classpath, i.e. include everything under
    src/main/resources in the classpath

 4. Cleanup of HTML5 drag'n'drop classes:
    - removed DnD classes that were originally copied from GWT 2.4
    - removed DnDPanel, modified subclasses to extend FocusPanel and
      utilize Element.setDraggable(String) method for controlling
      DnD behavior

 5. Modified scope of gwt-dev in root pom:
    - before, gwt-dev.jar was only on compile classpath
    - now, gwt-dev.jar is on both compile and runtime classpath,
      i.e. deployed in WEB-INF/lib of WebAdmin and UserPortal
    - this is because GWT direct-eval RPC (deRPC) which we use
      still contains code using com.google.gwt.core.client.GWTBridge
      instead of proper com.google.gwt.core.shared.GWTBridge

/-----------------------------------\
| GWTP Upgrade Log: General changes |
\-----------------------------------/

 6. Modified EventBus GIN binding in BaseSystemModule, preserving
    compatibility with legacy (com.google.gwt.event.shared.EventBus)
    interface while supporting actual EventBus interface for GWTP,
    i.e. com.google.web.bindery.event.shared.EventBus
    - even though GWTP suggests to move away from legacy EventBus
      interface, we can't do this -> some core GWT interfaces such
      as 'Has*Handlers' still work with legacy HandlerRegistration
    - both (actual and legacy) EventBus types are bound to the same
      SimpleEventBus implementation

 7. Modified *all* presenters to specify parent presenter's slot
    (annotated with @ContentSlot) or reveal type (RevealType enum)
    via constructor, instead of overriding 'void revealInParent()'
    method
    - GWTP Presenter provides default revealInParent implementation
      that works with arguments passed through constructor, which
      means revealInParent override is no longer enforced in GWTP
      presenter classes

 8. Modified AbstractTabPanel and AbstractTabPanelView to implement
    'TabPanel.changeTab(Tab,TabData,String)' method which was added
    by GWTP through TabPanel interface

 9. Modified all TabContainerPresenter subclasses to support changing
    tab information during runtime via @ChangeTab -> this delegates
    to 'TabPanel.changeTab(Tab,TabData,String)' method, i.e. after
    TabContentProxy wishes to change tab data and reflect changes
    within the corresponding TabContainerPresenter

10. Modified all @GenEvent static nested classes to be non-static,
    since GWTP GenEventProcessor adds all class modifiers (including
    'static') to generated top-level class, causing Java compilation
    error

11. Modified MainTabExtendedPresenter's proxy interface to extend
    NonLeafTabContentProxy instead of TabContentProxy (see Javadoc
    for more details)

12. Modified DynamicTabProxy to accomodate missing TabContentProxyImpl
    and other adjustments due to GWTP ProxyPlaceAbstract changes

13. Modified abstract views due to GWTP View & ViewImpl changes
    - methods dealing with slots use IsWidget instead of Widget
    - AbstractView & AbstractPopupView utilize ViewImpl.initWidget
      and ViewImpl.asWidget methods

14. Added PlaceRequestFactory that encapsulates PlaceRequest instance
    creation and implements flyweight pattern, i.e. reuse existing
    (immutable) PlaceRequest instances if possible
    - this is due to GWTP 'PlaceRequest(String)' constructor marked
      as @Deprecated, however PlaceRequest.Builder API isn't really
      appropriate for simple cases such as 'new PlaceRequest("foo")'

15. Removed 'ApplicationPlaceManager.getCurrentPlaceRequest()' override
    since the relevant ArrayIndexOutOfBoundsException fix landed in
    GWTP PlaceManagerImpl

16. Modified GwtCommon.gwt.xml to utilize GWTP's EntryPoint-less
    bootstrap by inheriting MvpWithEntryPoint module, removed WebAdmin
    and UserPortal EntryPoint classes since they're no longer needed

/---------------------------------------------------\
| GWTP Upgrade Log: ClientGinjector-related changes |
\---------------------------------------------------/

17. ClientGinjector is now auto-generated by GWTP at deferred binding
    phase, i.e. post Java compilation and prior to GWT compilation
    - this means ClientGinjector is no longer available in client code
      (it's no longer on Java compile classpath) so any code using
      ClientGinjector interface must be refactored
      * all classes @Inject-ing ClientGinjector now @Inject specific
        dependencies instead
      * abstract classes working with ClientGinjector now work with
        specific dependencies instead
      * all classes using ClientGinjectorProvider.instance.getEventBus
        now use ClientGinjectorProvider.getEventBus (for example),
        utilizing GIN requestStaticInject on ClientGinjectorProvider

18. Added ClientGinjectorExtension as custom ClientGinjector extension
    interface to declare accessor methods required by GWTP infra, i.e.
    processing of @TabInfo or @DefaultGatekeeper annotations
    - note that ClientGinjectorExtension is *not* a Ginjector, which
      means you shouldn't put any methods there unless they're needed
      by GWTP infra

19. Added ClientModule for WebAdmin and UserPortal, this is a top-level
    GIN module that installs other modules (GWTP picks up this module
    via "gin.ginjector.modules" property and uses it when generating
    ClientGinjector interface)

20. Enabled "strict" mode for GWT compiler, which means the compilation
    succeeds only when no input files have errors, including files that
    are generated at deferred binding phase (such as ClientGinjector)

/---------------\
| Other changes |
\---------------/

21. Added custom serializer for VdcLoginReturnValueBase to fix error
    "The client does not have field _loginResult in type
     org.ovirt.engine.core.common.action.VdcLoginReturnValueBase"

22. Improved existing custom serializers:
    - 'instantiate' only creates new instance
    - 'deserialize' takes care of deserialization from stream reader
    - 'serialize' takes care of serialization into stream writer

Change-Id: Ica797e68e2f56fd3f231baf36f0ac03c5df5c3f2
Signed-off-by: Vojtech Szocs <vszocs@redhat.com>