New tool merge two dex files into one.

This code isn't yet ready for general use, but I have booted a device
using a core.jar from the product of a merge. In particular, I still
need to better size the output dex.

The motivation is to support incremental builds in dx. Given a
"--incremental" flag, dx would create a dex file containing only those
classes newer than the target .dex. Then it would merge that small
.dex with the current .dex. Hopefully this yields a nice speedup
over dexing everything.

It would also be possible to use this to do parallel builds. We would
manually partition the input files, dx them, and then merge the result
together.

Change-Id: I8997fb3c8bfe73b64ef38a7cb3d6456fbe799d0f
44 files changed