Move Base64Utils to com.google.gwt.util.tools.shared

This class is used in RequestFactory in addition to GWT-RPC, so we need a
place for it that both RF and RPC can depend onto once they'll be split
out in their own JARs.

c.g.g.u.server.Base64Utils is kept as a bridge for backwards compatibility.

git fetch https://gwt.googlesource.com/gwt refs/changes/00/1200/3 && git cherry-pick FETCH_HEAD

Change-Id: Id7d11a11bd9d454b8ed8a2b39d3ca302ae0623d6

Conflicts:
	user/src/com/google/web/bindery/requestfactory/vm/impl/OperationKey.java
Cut dependency from c.g.g.http on c.g.g.user by no longer using Timer

Replaced with JSNI calls to setTimeout and clearTimeout.

git fetch https://gwt.googlesource.com/gwt refs/changes/60/1160/6 && git cherry-pick FETCH_HEAD

Change-Id: I66217980de084dd27e91d3930034ea03931ffe74
Avoid implicit inter-dependencies between DOM, History, Window and Widgets
through BaseListenerWrapper by moving things to where they're used.

git fetch https://gwt.googlesource.com/gwt refs/changes/41/1241/4 && git cherry-pick FETCH_HEAD

Change-Id: I44ea5f26c96716879b2a23331cafc26a63644e89
Break dependency from History to user.DOM, using dom.DOM instead.

git fetch https://gwt.googlesource.com/gwt refs/changes/42/1242/4 && git cherry-pick FETCH_HEAD

Change-Id: Iae4a456230318015fe6c188726dccbd6d42ffadc
Disentangle module dependencies, breaks (most) cyclic dependencies.

There are basically 3 types of modules:
 - those that provide source or super-source
 - those that only provide configuration (deferred-binding, linker, etc.)
 - those that aggregate the above

The rule I followed is that non-source modules should try hard to not
import sources that are not already imported by their dependencies. They
use a <source path="null"/> to enforce that in some cases.
Additionally, configuration-only modules that are "private" (not intended
to being inherited directly by users) do not inherit any module, they just
assume the aggregate module that inherits them also inherits the required
dependencies and provides the sources.

To split the User module, RemoteService is made standalone, and a Cookies,
Random, Timer, and UI modules are introduced, along with TakesValue,
HasText, AsyncCallback and RemoteServiceApi to be used in Editor, I18N,
RPC and JSONP, and javax.validation respectively.
The c.g.g.user.HTTPRequest module is removed, as the HTTPRequest class that
it was tied to has been removed a long time ago.
Editor has been split so that it doesn't depend on UI, EditorUI has been
introduced for that, which UI inherits.
Finally, a ValidationBase module has been added so that javax.validation
can be inherited for its API, without inheriting the whole c.g.g.validation
module.

git fetch https://gwt.googlesource.com/gwt refs/changes/43/1243/7 && git cherry-pick FETCH_HEAD

Change-Id: I18ab07b3c31902c0af7fc4b0e716906265355329
WIP
WIP
WIP
WIP
Fix gwt-compiler tests
gwt-codeserver
Use buildnumber-maven-plugin to replace old svnInfo Ant task
Fix dependencies (htmlunit vs. xercesImpl, typo in protobuf)
Move super-sources to src/main/super
gwt-http
Rewrite SafeHtmlTemplatesGenerator without dependency on I18N.

Also simplifies AbstractGeneratorClassCreator a bit.

git fetch https://gwt.googlesource.com/gwt refs/changes/20/1320/3 && git cherry-pick FETCH_HEAD

Change-Id: Ie23cea62db7e73c163cfb8194452d8f010f084de
Split gwt-core into shared and client, merge gwt-lang in gwt-core-client
gwt-regexp-*, gwt-safehtml-server, gwt-i18n-{shared,server}, gwt-core-server
gwt-rpc
gwt-junit (finally!)